Actionscript-3循环问题 - Adob​​e Animate CC

时间:2016-06-28 18:47:36

标签: actionscript-3 loops flash animation actionscript

我的雇主决定让我开始使用Adobe的新“Animate CC”应用程序制作动画。我的问题是我不知道如何在Adobe Animate环境之外循环我的动画。不幸的是,我是Adobe Animate CC和ActionScript的新手,所以我可能需要一个相对基本的答案来理解为什么我的解决方案不起作用。据我所知,IDE完全忽略了我的ActionScript代码。

在IDE和浏览器测试命令中,动画播放超出第100帧,直到结束,然后在重复之前闪烁一帧白色。我需要它循环,没有这个白色框架中断屏幕,无论是通过循环或其他一些我不知道的方式。

对于上下文:我的项目有大约100层内容,我不熟悉这个程序的工作原理。我已经在网上搜索了如何做我需要做的教程,但是我空手而归。

我的补间动画和其他图层之间有一个动作图层 https://gyazo.com/6e0b8502d98b6c9903bb96ac3a939bae

我一直试图在第100帧使用gotoAndPlay(0)从头开始动画。 https://gyazo.com/704ee7158bae6dfd149b6283cfa33451

基本上,如何在Adobe Animate CC中使用Action-Script以无限循环播放动画直到关闭?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您的闪烁可能是由于其中一层上有一个额外的空白关键帧而导致的。

假设您没有任何其他脚本来停止动画(例如stop()),则无论您的动画是在MovieClip内还是在主时间轴上,时间轴都应自动循环播放。您不必将任何脚本放在时间轴上或放在单独的AS文件中即可进行动画循环。我会建议这种方法。

此外,尽管您有指定您希望它进入第一帧的代码,但由于时间轴仍在播放,因此优先级较高,它将忽略您的呼叫。解决这个问题的一种方法是添加stop();函数和包含gotoAndPlay(0)函数的延迟计时器。这将把重点从播放时间轴上移开,并使您可以执行脚本。我不建议这种方法,因为它似乎有点多余。

但是,如果您对下面的方法感到好奇,请将该脚本添加到希望动画重新开始的帧中。

//Stop the Timeline
stop();

//Create a delay timer for 5 miliseconds that is executed once
var timer:Timer = new Timer(5,1);

//Add an event listener that calls once the timer is complete
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);

//Start the timer
timer.start();

//Timer handler that is called once the delay timer is complete 
function timerHandler(event:TimerEvent){

     //Go to and play the first frame
     gotoAndPlay(0);
}