Actionscript 播放电影剪辑,让它等到主电影结束后再重新启动

Actionscript 播放电影剪辑,让它等到主电影结束后再重新启动,actionscript,Actionscript,我有一个闪光的旗帜,其中包括一个正在动画的标志电影剪辑。我想标志动画只运行在主“电影”的开头。目前,我必须找到整个电影的长度(例如500帧),然后在logo电影剪辑的第500帧处放置一个关键帧。我知道必须有一个正确的方法来做到这一点…我是否要在主时间线的末尾添加一个帧名称,并以某种方式在徽标电影剪辑中说“当你到达X goToAndPlay(1);”?嗯,你不能简单地做“当你做这个,做那个” 我现在想到两种方法。首先(更)合适的方法是添加一个dispatchEvent(新事件(_Event_TYP

我有一个闪光的旗帜,其中包括一个正在动画的标志电影剪辑。我想标志动画只运行在主“电影”的开头。目前,我必须找到整个电影的长度(例如500帧),然后在logo电影剪辑的第500帧处放置一个关键帧。我知道必须有一个正确的方法来做到这一点…我是否要在主时间线的末尾添加一个帧名称,并以某种方式在徽标电影剪辑中说“当你到达X goToAndPlay(1);”?

嗯,你不能简单地做“当你做这个,做那个”

我现在想到两种方法。首先(更)合适的方法是添加一个
dispatchEvent(新事件(_Event_TYPE__))到要停止的帧,然后向movieclip添加侦听器,如:

mc1.addEventListener(Event.__EVENT_TYPE__, stopPlayback);
function stopPlayback( e:Event ):void{
   mc1.stop();
   mc1.removeEventListener(Event.__EVENT_TYPE__, stopPlayback);
}
因此,当事件被调度时,您将停止播放。例如,您可以使用Event.COMPLETE或创建自定义事件

第二种方法是添加一个事件。输入\u FRAME Event listener,然后检查是否返回到第一个帧,如果已循环返回到最后一个帧并停止,请删除事件侦听器并完成。 我们还需要把最后一个画面储存在某个地方,这样我们才能知道我们需要回去

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

希望能有帮助


干杯。

谢谢!这是有道理的,我要试一试。真聪明。