ActionScript 3从类(不是文档类)手动添加MovieClip实例

时间:2013-03-15 19:10:32

标签: actionscript-3 reference instance

如果我有一个名为“btnExit”的实例,我将其手动添加到主时间轴,我只需输入其名称就可以从我的文档类中引用它,例如。

package{
    public class Engine extends MovieClip{

        public function Engine(){
            trace(btnExit.x);
        }
    }
}

但是现在我有一个嵌套在另一个movieclip中的实例,我想从类(而不是Document Class)访问它。

假设我的库中有“Menu”movieclip。

然后我手动将“ButtonExit”按钮拖到“菜单”动画片段时间轴,我将实例命名为“btnExit”,因此“btnExit”是“菜单”动画片段的子项。

“菜单”动画片段将按代码动态添加到主时间轴。

现在我想从“Menu”类文件中访问“btnExit”,所以我写了这些代码。

文件类:

package{
    public class Engine extends MovieClip{

        public var menu:Menu;

        public function Engine(){
            menu = new Menu();
            addChild(menu);
        }
    }
}

其他班级:

package{
    public class Menu extends MovieClip{

        public function Menu(){
            trace(btnExit.x);
        }
    }
}

但是由于无法访问btnExit,我收到错误#1009(空对象引用);

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

确保ButtonExit的实例存在于菜单时间轴的每一帧上,并且它的实例在每个帧上都适当命名,或者如果Button当前位于正确的帧上,则编写if语句以仅运行代码。

菜单剪辑动画时的每一帧都会重新实例化帧上的所有内容,所以如果你的第二个/第三个/第四个/ etc帧没有名为btnExit的剪辑,那么当调用构造函数时它会抛出一个错误对于那个框架。