0

我正在尝试向EventListener我的按钮添加一个按钮,该按钮是另一个按钮的子按钮,MovieClip但我收到以下错误。代码放在我的时间线内。

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

movClip.Play_btn.addEventListener(MouseEvent.CLICK,playfunc);
//movClip.Play_btn.visible = false;// this give the same result
function playfunc(evt:MouseEvent){
    SoundMixer.stopAll();
    gotoAndPlay(1, "Scene 2");
}
4

1 回答 1

0

如果Play_btn是唯一的孩子,意味着它是唯一movClip包含你可以替换的东西

movClip.Play_btn.addEventListener(MouseEvent.CLICK,playfunc);

movClip.getChildAt(0).addEventListener(MouseEvent.CLICK,playfunc);

否则试试这个

for (var i:uint = 0; i < movClip.numChildren; i++) {
            if (movClip.getChildAt(i) is MovieClip) {
                 if (movClip.getChildAt(i).name == "Play_btn") {
                        movClip.Play_btn.addEventListener(MouseEvent.CLICK,playfunc);
                        trace("Play_btn found");
                        break;
                 }
            }
}

function playfunc(evt:MouseEvent) {
    trace("It works");
    SoundMixer.stopAll();
    gotoAndPlay(1, "Scene 2");
}

更新


确保您已命名您的实例 Play_btn,或者movClip它不是类名,即库中的名称。而不是这条线

movClip.Play_btn.addEventListener(MouseEvent.CLICK,playfunc);

使用以下

movClip.getChildByName("Play_btn").addEventListener(MouseEvent.CLICK,playfunc);
于 2013-06-07T23:42:24.447 回答