actionscript-3 - ActionScript 3 : Smooth programmatic animation

标签 actionscript-3

我想尽可能流畅地为 MoviveClips/Sprite 对象设置动画。然而,目前唯一有效的方法是将移动代码放入 EnterFrame 事件处理程序中。这种方法有一个问题:当特定机器上的帧率低于所需的帧率时,整个游戏就会变慢。我希望能够以与时间无关的方式做到这一点。

最佳答案

有两种方法可以在 Flash 播放器中执行程序化动画。您已经通过使用 onEnterFrame 指出的第一个。但是,您可能已经注意到,要获得流畅的动画效果,您需要提高电影的整体帧速率。这样做还会在 SWF 运行的整个时间段内增加 CPU 负载。这不是你一直想要的。

进行程序化动画的另一种方法是使用计时器。在计时器处理程序中,可以调用名为 updateAfterEvent 的函数。这将独立于您为 SWF 设置的 FPS 更新屏幕。因此,使用计时器可以让您在 Flash 播放器中执行流畅的动画,而不会增加 SWF 的整体帧速率。

大约两年前,我开始为 Flash 创建我自己的补间库(因为我对当时可用的补间库感到沮丧)。我以 Coretween 的名义发布了它并且这个库让你可以为每个补间选择你喜欢的动画类型。在文档页面上,我给出了 example基于帧和基于时间的动画之间的区别。该页面上的示例 SWF 以 12 fps 运行,但正如您所看到的,下部圆圈补间平滑得多,因为它由一个计时器控制,该计时器以 60 fps 滴答滴答,并根据 SWF 帧速率更新屏幕。请记住,即使计时器以 60 fps 计时,实际上 Flash Player 也永远无法达到此帧速率。但是,它会尝试达到此帧速率,从而使整体动画更加流畅。

不幸的是,直到现在我还不能发布我的库的 1.0 版本,但据我所知它非常稳定。非常欢迎您以任何您认为合适的方式使用它。我已经在许多商业作品中使用过 Coretween,包括我们为 StGeorge 所做的这个作品。银行在澳大利亚。

关于actionscript-3 - ActionScript 3 : Smooth programmatic animation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929749/

相关文章:

actionscript-3 - 有没有办法在运行时在 swf 中呈现 svg 数据?

actionscript-3 - Actionscript 3 - 经常并行播放声音

android - AIR AS3 Android Sound 播放一次但在淡出后不再播放

flash - 如何在 Mac OS X 上的 Flash CS5 中使用 ADOBE AIR SDK 3.1

flash - AS3 : How can I define boundaries for a drag-able object?

flash - AS3导入FLA文件

regex - AS3正则表达式问题

actionscript-3 - 在我的 ActionScript3 类中,我可以拥有一个带有 getter 和 setter 的属性吗?

image - AS3/AIR/Mobile - 将位图保存到文件

flash - 如何在 Actionscript 3 中按字母顺序比较两个字符串