Actionscript 3如何一次移动多个对象而没有滞后

时间:2013-08-25 19:54:14

标签: performance actionscript-3 flash actionscript movieclip

我有一个简单的问题。 我正在使用actionscript 3.0和Adobe flash professional cs6来制作游戏。我希望保持简单,干净,而不是迟钝,但对于我的游戏,我需要许多(10-30)动画片段同时在屏幕上移动不同的方式。我想为Event.ENTER_FRAME事件使用基于时间的动画,但我不知道是否拥有每个人(因为他们都是超级类所固有的,可以做到这一点)movieclip跟踪自己的时间并自行移动这样,或者让经理类跟踪时间,然后以时间作为参数调用所有动画片段的函数。我想知道最后哪一个更快。

1 个答案:

答案 0 :(得分:3)

要添加上面链接的优秀答案,您应该仔细考虑并规划游戏的哪些组件需要最多的关注和优化。尝试优化每个方面将变得非常麻烦且难以管理。除此之外,某些类型的优化不能同时发生(例如,您通常无法同时优化速度和内存消耗,因为改进一个会降低另一个)。

例如 - 如果你知道你的游戏会在屏幕上发生很多事情(很多图形和效果),那么你应该认真考虑一个专注于渲染性能的库,比如Starling,它会利用较新的Stage3D API可以极大地提高绘图速度。

如果在另一个例子中你的游戏需要在对象之间进行大量测量并实现像光线投射和寻路之类的东西,那么你应该看看如何为你的游戏构建一个能够最有效地运行这些算法的网格。

至于清洁度,特别是当你提到Event.ENTER_FRAME时,你应该只在游戏的主类(或类似的处理程序类)中为这个事件实现一个处理程序。您的实际游戏对象应该在此类的数组中列出,并且enterFrame处理程序应该迭代该数组并在每个数组上调用一个函数,即update()或类似的。