我正在尝试将一个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”;有没有办法解决这个问题?
答案 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函数。