在定义变量之前运行的AS3函数!

时间:2010-06-15 21:38:26

标签: actionscript-3 undefined init

我正在尝试将一个init()函数添加到MovieClip中,但是当我从scene1运行该函数时,MovieClip中设置的变量尚未定义... MovieClip已从库中拖到舞台上

SCENE1:

mc.init(null);

的MovieClip:

var _default = 5;

function init(num) {
     if(num == null) {
          trace(_default);
     } else {
          trace(num);
     }
}

这是跟踪“未定义”而不是“5”;有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题在于,直接放在主时间轴中的任何代码将始终在直接在MovieClip中的代码之前运行。

解决这个问题的方法是让flash在时间轴和MovieClip中首先运行该代码,然后在完成后从时间轴调用该函数。

最简单的方法是使用事件监听器:

时间轴:

addEventListener( Event.ENTER_FRAME, onEnterFrame );

function onEnterFrame( e:Event ):void {
    myObject.init(null);
    removeEventListener( Event.ENTER_FRAME, onEnterFrame );
}

这样,时间轴将等到第一帧开始调用MovieClip的init函数。