播放影片剪辑,让它等到主影片结束然后重新开始

时间:2011-11-17 16:13:28

标签: actionscript

我有一个flash横幅,其中包含动画徽标的影片剪辑。我希望徽标动画只在主要“电影”的开头运行。目前我必须找到整部电影的长度(例如500帧),然后在徽标影片剪辑的第500帧放置一个关键帧。我知道必须有一个正确的方法来执行此操作...我是否在主时间轴的末尾添加了一个框架名称,并且在徽标影片剪辑中以某种方式在AS中说“当你到达X goToAndPlay(1);”?

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()调用时)才使用第二个;)

希望有所帮助

干杯。