AS2使用onEnterFrames处理多个动画片段时减少延迟的最佳方法

时间:2013-05-31 00:31:59

标签: actionscript actionscript-2 movieclip lag

正如标题所述,我想知道在舞台上同时处理几个动画片段的最佳方法是什么,每个都有自己的onEnterFrame功能。让我们说屏幕上有50个敌人,不断播放动画。 onEnterFrame函数包括获取方向,移动X / Y值,检查玩家与其自身之间的距离,检查它是否处于可攻击距离等。正如您可以想象的那样,会发生很多延迟。

一种通常会克服此问题的游戏类型是在僵尸游戏中,您一次会在屏幕上拥有多个僵尸。

在处理多个像这样的动画片段时,减少延迟的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

每个onEnterFrame侦听器都会创建新的事件对象,因此每个帧创建的onEnterFrame侦听器越多,创建的对象就越多。在AS2中,对象创建非常慢。

因此,需要考虑的一个优化是只注册一个 onEnterFrame事件,然后从“main”onEnterFrame循环遍历所有敌人等,并在每个实例上调用更新函数。

从代码结构的角度来看,这也是一个好主意,因为现在每个帧只运行一段代码。它可以更容易地查看每帧实际运行的内容。暂停游戏你可以简单地停止主要的onEnterFrame,整个游戏就会停止。