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

有帮助吗?

解决方案

有两种方法可以在Flash Player中做编程动画。第一个你已经使用的onEnterFrame指出。然而,正如你可能已经注意到了,获得流畅的动画,你需要增加你的电影的整体帧速率。这样做也将增加的整个时间段的SWF运行CPU负载。这不是你一直想要的东西。

操作方案动画的另一种方法是通过使用定时器。在定时器处理程序,可以调用一个函数命名updateAfterEvent将更新屏幕独立于你会为你的SWF设定的FPS。因此,使用定时器离开网关的Flash播放器中做平滑的动画而不会增加你的SWF的整体帧速率。

两年前还是让我着手创建为Flash我自己补库(因为我的挫折与现有当时已有吐温库)。我释放出它的名下 Coretween 和这个库可以让你,除其他事项外,选择你喜欢什么类型的动画为每一个人吐温。在文档页面我举一个基于帧和基于时间的动画之间的差异href="http://www.coretween.org/documentation.html#RenderMethod" rel="noreferrer">例子。该网页上的例子SWF以12 fps运行,但你可以看到,下圈充斥着更加顺畅,因为它是由蜱以60 fps和更新,所依赖的屏幕从SWF帧速率的定时器控制。千万记住,虽然,即使计时器滴答声在现实中60 fps的Flash播放器将永远无法实现这一目标的帧速率。然而,它会尝试实现这个帧速率,这导致一个更平滑的整体的动画。

不幸的是到现在为止我还没有能够释放1.0版我的图书馆,但据我所知,这是相当稳定的。你比欢迎更多的在你认为合适的方式来使用它。我用Coretween在许多商业作品包括这一个我们为 StGeorge 银行在这里在澳大利亚。

其他提示

以下是一些基于 Actionscript 的动画库:

吐温最大

特威纳

它们都工作得很好,应该可以帮助您满足您的需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top