ActionScript-3 - 播放以前创建的MovieClip和Event.ENTER_FRAME之间的区别

时间:2011-08-01 07:31:21

标签: flash actionscript-3 animation

我创造的游戏涉及一些类似台球的球在屏幕上反弹。我创建了一个只有一个代表球的帧的MovieClip,将它导出到类中,将其扩展到我的需要并使用Event.ENTER_FRAME对其进行动画处理。它工作正常,但有些东西让我困惑 - 舞台和舞台每个只有一帧,所以我不太明白Event.ENTER_FRAME是如何工作的...我的意思是,如果没有关键帧,怎么做动画???如果我已使用动画MovieClip,我将不得不添加关键帧,对吧?

4 个答案:

答案 0 :(得分:2)

Event.ENTER_FRAME与.swf的每秒帧数率相关联。无论MovieClip是否为动画,它都将继续触发ENTER_FRAME。

它与MovieClip的动画帧无关,除了与它同步,因为它与相同的时间间隔相关,即1000ms / FPS。

所以无论你做什么来设置来自Event.ENTER_FRAME的球以编程方式,绝对与动画无关

编程和时间轴动画是两个不同的东西。无论你的动画片段在哪里,代码都会触发。尽管你可以从ENTER_FRAME事件中控制它,但它与movieclip动画无关。

总而言之,Event.ENTER_FRAME应该为您提供一种简单的方法来创建定时代码定时时间轴动画。

答案 1 :(得分:2)

Flash Player始终根据帧速率播放。显示对象是否实际移动取决于这些对象是否正在侦听Event.ENTER_FRAME事件处理程序中的指令,通常是否重新定位/重绘自身。将Event.ENTER_FRAME事件视为一个电源插座,可以在插入对象时为其设置动画。

从帧脚本转移到真正的编程在这方面可能会令人困惑。帧脚本和MovieClip对象通常被视为逐帧序列,至少这是因为使用Flash Professional IDE的用户可以相信它,因为它在概念上和视觉上都很容易掌握。

在Flash IDE框架脚本中,看起来你对每个框架有更多的视觉控制,而这些框架可以单独更改,以显示翻页式的逐帧序列(IE:丢弃不同的图像)在每个帧中),它们也可以以编程方式动画(IE:补间动画)。编程动画显示对象不会占用越来越多的帧,因为您可能认为它们基于Flash IDE,因为它们只是可视化工具。 AVM2运行时以相同的方式处理帧脚本和打包的代码。

MovieClip从Sprite对象扩展。它们基本上是同一个对象,除了Sprite没有像 gotoAndStop()等函数,如果从帧脚本切换到包级别编程,你不应该使用MovieClip对象,因为它们都比较重实际上没用 - 改用Sprite。

答案 2 :(得分:1)

单帧将为每个ENTER_FRAME调用进行更新。像精灵容器一样。

答案 3 :(得分:1)

根据您的帧速率触发enterFrame事件,它实际上与动画片段时间轴无关。只是动画片段时间轴动画也基于帧速率。至少,这是我看待它以使其更容易的方式。