Flash动画 - 如何停止循环并保留在最后一个图像/帧上?

时间:2011-10-16 20:23:07

标签: flash animation flash-cs3

我是Flash的新手,无法在最后一帧停止FLA动画。我在Actionscript中使用了“stop()”命令,但是这个命令要么(i)停止动画并转到空白框(可能是动画的第一帧),如果我插入空白关键帧,或者(ii)如果我插入常规的关键帧,无论如何都会循环。

我正在使用最新版Flash上​​的重建FLA文件(即反编译的SWF文件)。除了Actionscript之外,我还尝试调整发布设置(例如,取消选中“循环”并将Flash版本设置为7或8)并编辑嵌入参数(如Stack上的另一个答案所示),但这些努力似乎都没有有所作为。

任何帮助将不胜感激 - 谢谢!

3 个答案:

答案 0 :(得分:1)

请遵循以下代码

<param name='loop' value='false' />
<object type='application/x-shockwave-flash' data='sourcefile' width='300' height='120' loop='false'>

这完美无缺

答案 1 :(得分:0)

舞台上有没有电影剪辑?

你应该知道每个动画片段都有自己的时间轴,因此要阻止动画制作特定的动画片段,stop();应放在动画片段时间轴的相应关键帧内。

答案 2 :(得分:0)

有几种方法可以做到这一点。最简单的方法(如“user559142”建议)只是在该MovieClip的时间轴的最后一帧上放置一个“stop()”命令。只需将其添加到最后一帧。

不幸的是,MovieClips在到达最后一帧时不会发送COMPLETE事件。在我看来,这个平台的缺点。确保MovieClip在最后一帧停止的更重要的方法是侦听ENTER_FRAME事件,并在当前帧等于最后一帧时调用stop(),如下所示:

your_movie_clip.addEventListener(Event.ENTER_FRAME, function(e:Event):void 
{
   if (your_movie_clip.currentFrame == your_movie_clip.totalFrames)
   {
      your_movie_clip.stop(); 
   }
});

但是,请注意,如果取消选中“循环”,则只会在HTML包装中发布(和查看)SWF时看到内容不循环,即使这样,只有在您尝试的内容时停止循环显示在主时间轴上。如果您只是在创作环境中进行预览,或者您的内容有自己的时间轴,而您正试图阻止循环,那么您将看不到这种行为。