3月 21
用flash authoring tool做项目时,当在指定帧的舞台上事先放好了MovieClip,并取好实例名,用Event.ENTER_FRAME监听,到动画播放到指定帧后,你无法立刻获得当前帧的stage上的实例,总是会延迟一帧。
这就很郁闷,当有些实例,你希望到指定帧后,先不显示,或动态改变一些属性,你会发现,它先会按实际样子闪现一下。
原来只有两种方法,第一,先不把实例放舞台,在库里改属性,到时再new进来。第二,就是把舞台实例的alpha透明度调成0。都很不爽。
最近研究stage、文档类、时间轴类的关系时,再次发现addFrameScript,很以前就见过,但没深究。这次总算派上用场了。哈哈。用addFrameScript可以在播放头到达指定帧后立即取得当前帧舞台上的实例。上代码。
package
{import flash.display.*;
import flash.events.*;
public class Main extends MovieClip{public function Main()
{this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}public function onEnterFrame(e:Event)
{if (currentFrameLabel == "yi" || currentFrameLabel == "er"){this.addFrameScript(currentFrame-1, frameScript);
}}public function frameScript()
{this.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
this.stop();
if (currentFrameLabel == "yi"){MovieClip(yi).alpha = .2;}}}}
©panhezeng for 阿潘道,
2006-2023. 原文地址:https://apsay.com/2011/03/21/get-stage-instance-immediately-after-the-enter_frame-to-the-specified-frame-stop-in-fla/
本文遵循署名-非商业性使用共享协议,转载请注明。
本文遵循署名-非商业性使用共享协议,转载请注明。