在动作3中,我如何处理不在第1帧的对象?

时间:2010-03-01 09:37:20

标签: actionscript-3

我的时间轴第2帧上有一个对象(按钮),名称为btnMenu。单击时,我想返回时间轴中的第1帧。 Actionscript 3不允许我将eventlistener绑定到第1帧的代码中的按钮。

布局:

第1层:动作,仅限第1帧 第2层:btnMenu,仅在第2帧(前面有一个空框)

代码:

stop(); // don't automatically go to frame 2

btnMenu.addEventListener(MouseEvent.CLICK, function() { gotoAndStop(1); }

(其他代码显然要转到第2帧)

我得到的错误是“找不到对象的方法/属性为null”(粗略翻译)。

请帮帮忙?

1 个答案:

答案 0 :(得分:0)

您只能访问代码所在的同一帧上的对象。你有几种方法来解决这个问题。取决于您希望如何构建应用程序。

  1. 您可以将所有按钮移动到拥有代码的框架,将其可见性切换为false,一旦到达按钮应该可见的框架,只需将其设置为true。

  2. 其他方法是将addEventListener代码移动到按钮的同一帧。您仍然可以在第一帧中访问您的代码,并在需要时调用函数。

  3. 请考虑以下事项:

    // code in first frame
    stop();
    
    function goto(evt:MouseEvent):void {
        gotoAndStop(1);
    }
    
    // code in button frame
    stop();
    btnMenu.addEventListener(MouseEvent.CLICK, goto);