Actionscript 3 AS3-立即采取行动启动并停止
我正在从AS2迁移到AS3,可能有很多ppl发现了这种不兼容性: 我经常使用这样的代码:Actionscript 3 AS3-立即采取行动启动并停止,actionscript-3,Actionscript 3,我正在从AS2迁移到AS3,可能有很多ppl发现了这种不兼容性: 我经常使用这样的代码: gotoAndStop(5); trace(box); //where box is a movie on 5th frame 在AS3中,最简单的方法是什么。不容易做到这一点 你需要做的是 设置帧渲染时的侦听器 告诉它转到所述帧(5) 强制渲染尽快进行。使无效 留在as2的首要原因之一。 不是说as2更好,只是在一些事情上更好,这就是其中之一。我的观点是,as3并不是真的要很好地处理时间线 用as
gotoAndStop(5);
trace(box); //where box is a movie on 5th frame
在AS3中,最简单的方法是什么。不容易做到这一点 你需要做的是
- 设置帧渲染时的侦听器
- 告诉它转到所述帧(5)
- 强制渲染尽快进行。使无效
gotoAndStop(5);
trace(box);
使用as3时,需要等待时间轴渲染
stage.addEventListener(Event.RENDER, onRenderStage);
protected function onRenderStage(ev:Event):void {
trace(this['box']);
}
gotoAndStop(5);
stage.invalidate();
在as2的日子里,我曾经在一部电影的不同画面中拥有不同的资产,但在AS3中这样做太复杂了,享受不到任何好处。因此,虽然这会起作用,但我建议大家研究一种完全不同的解决方案。或者坚持使用as2。有一种简单的方法可以解决这个问题,但它没有文档记录:
addFrameScript(1, update);
gotoAndStop(2);
function update() {
trace(box); // outputs [object MovieClip]
}
请注意,addFrameScript的第一个参数是帧编号,但它是基于0的,即0是帧1,1是帧2,等等。。。第二个参数是要调用的函数 AS3必须确保它不会在原始帧上的动作上为其余部分释放上下文,这就是为什么它会在所有动作结束时进行移动。。。我想这就是JIT编译的价格。