我从未真正获得过flash-actionscript代码执行顺序。
在flash pro中我在第一帧的舞台上有一个名为tree1
的动作片实例,在第3帧我有一个tree3
。
在文档类中我有这段代码:
stop();
var scaleFactor:Number = tree1.scaleX;
gotoAndStop(3);
tree3.scaleX = scaleFactor;
虽然这在桌面上进行测试时有效,但此应用最终会移动
这是正确的方法,或者我应该在访问特定帧上的实例之前注册frameComplete事件
答案 0 :(得分:0)
所以,只是不使用文档类,因为你需要从头开始声明所有场景,并且复杂起来管理每个场景。
我建议你实例化一个与他自己的类链接的简单MovieClip,例如示例SceneTree,将它放在每个Keyframe上。当您进入或退出每个帧时,您将获得更多控制权。
package {
import flash.display.MovieClip;
import flash.events.Event;
public class SceneTree extends MovieClip {
public function SceneTree() {
super();
this.addEventListener(Event.ADDED_TO_STAGE, Init);
this.addEventListener(Event.REMOVED_FROM_STAGE, removed);
}
protected function Init (event:Event):void{
trace("added")
}
protected function removed (event:Event):void{
trace("removed")
}
}
}
答案 1 :(得分:0)
等待Event.FRAME_CONSTRUCTED是正确的方法
它确保所有资产都已创建