我有一个flash横幅,其中包含动画徽标的影片剪辑。我希望徽标动画只在主要“电影”的开头运行。目前我必须找到整部电影的长度(例如500帧),然后在徽标影片剪辑的第500帧放置一个关键帧。我知道必须有一个正确的方法来执行此操作...我是否在主时间轴的末尾添加了一个框架名称,并且在徽标影片剪辑中以某种方式在AS中说“当你到达X goToAndPlay(1);”?
答案 0 :(得分:1)
好吧,你不能简单地做“当你这样做,做那个”。
现在我想到两种方式。首先(更多)正确的是将dispatchEvent( new Event(__EVENT_TYPE__));
添加到要停止的帧上,然后将监听器添加到动画片段中,如:
mc1.addEventListener(Event.__EVENT_TYPE__, stopPlayback);
function stopPlayback( e:Event ):void{
mc1.stop();
mc1.removeEventListener(Event.__EVENT_TYPE__, stopPlayback);
}
以便在调度事件时您将停止播放。您可以使用例如Event.COMPLETE或创建自定义事件。
第二种方法是添加一个Event.ENTER_FRAME事件监听器,而不是检查我们是否回到第一帧,如果我们已经循环返回到最后一个并停止,则删除事件监听器并完成。 此外,我们需要存储我们所在的最后一帧,以便我们知道我们需要回来。
mc1.addEventListener(Event.ENTER_FRAME, onEF);
var lastFrame:int = 0;
function onEF( e:Event ):void{
if(mc1.currentFrame == 1){
mc1.removeEventListener(Event.ENTER_FRAME, onEF);
mc1.gotoAndStop(lastFrame);
}
lastFrame = mc1.currentFrame;
}
仅当您无法将事件发送添加到影片剪辑(或简单的stop()调用时)才使用第二个;)
希望有所帮助
干杯。