flash-as3代码执行顺序:在gotoAndStop()之后访问flash pro实例

时间:2011-08-13 11:56:33

标签: actionscript-3 flash movieclip

这是this question

的后续问题

我从未真正获得过flash-actionscript代码执行顺序。

在flash pro中我在第一帧的舞台上有一个名为tree1的动作片实例,在第3帧我有一个tree3

在文档类中我有这段代码:

stop();
var scaleFactor:Number = tree1.scaleX;
gotoAndStop(3);
tree3.scaleX = scaleFactor;

虽然这在桌面上进行测试时有效,但此应用最终会移动

这是正确的方法,或者我应该在访问特定帧上的实例之前注册frameComplete事件

2 个答案:

答案 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是正确的方法

它确保所有资产都已创建