我是Flash的新手,无法在最后一帧停止FLA动画。我在Actionscript中使用了“stop()”命令,但是这个命令要么(i)停止动画并转到空白框(可能是动画的第一帧),如果我插入空白关键帧,或者(ii)如果我插入常规的关键帧,无论如何都会循环。
我正在使用最新版Flash上的重建FLA文件(即反编译的SWF文件)。除了Actionscript之外,我还尝试调整发布设置(例如,取消选中“循环”并将Flash版本设置为7或8)并编辑嵌入参数(如Stack上的另一个答案所示),但这些努力似乎都没有有所作为。
任何帮助将不胜感激 - 谢谢!
答案 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时看到内容不循环,即使这样,只有在您尝试的内容时停止循环显示在主时间轴上。如果您只是在创作环境中进行预览,或者您的内容有自己的时间轴,而您正试图阻止循环,那么您将看不到这种行为。