1

帮助。基本上我在不同的框架上有 2 个按钮。如果单击第 1 帧上的按钮,它将转到第 2 帧并停止。如果单击第 2 帧上的按钮,它将转到第 1 帧并停止。我要做的是通过外部动作脚本控制此按钮文件。第一个按钮运行没有问题,而第二个按钮似乎没有正确响应并出现以下错误消息:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。
    在 src::Main/init()
    在 src::Main()

这是代码:

package src 
{
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.MovieClip;

/**
 * ...
 * @author vimoetz
 */
public class Main extends MovieClip 
{

    public function Main():void 
    {
        if (stage) init();
        else addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event = null):void 
    {
        removeEventListener(Event.ADDED_TO_STAGE, init);
        this.gotoAndStop("1");
        button1.addEventListener(MouseEvent.CLICK, gotoFrame2);
        button2.addEventListener(MouseEvent.CLICK, gotoFrame1);
    }

    public function gotoFrame2 (e:MouseEvent)
    {
        this.gotoAndStop("2");
    }

    public function gotoFrame1 (e:MouseEvent)
    {
        this.gotoAndStop("1");
    }

}

}
4

1 回答 1

1

您需要从init函数中删除此行:

button2.addEventListener(MouseEvent.CLICK, gotoFrame1);

并且功能gotoFrame2更改如下:

public function gotoFrame2 (e:MouseEvent)
    {
      this.gotoAndStop("2");
      if (!button2.hasEventListener(MouseEvent.CLICK)){
        button2.addEventListener(MouseEvent.CLICK, gotoFrame1);
      }
    }
于 2013-04-30T08:29:29.083 回答