创建Sprite实例而不将它们添加为子项会降低性能速度吗?

时间:2012-07-11 09:07:53

标签: performance actionscript-3 3d sprite

我正在AS3中构建一个自定义的简单3D引擎,尽可能简单。它使用Graphics绘制所有内容并使用Bitmap和BitmapData渲染它。

为了按z(深度)位置重新排序绘图顺序,我使用Sprite的Transform实例的getRelativeMatrix3D。这是我的问题:如果我创建了很多Sprite实例,但是不要将它们作为舞台的孩子添加,那么它会降低我的演奏速度吗?

如果确实如此,那么有没有更有效和更有用的重新订购方式而不添加作为儿童的SPRITES?

如果没有,请告诉我。

谢谢! :)

1 个答案:

答案 0 :(得分:1)

正如@Neil在评论中正确指出的那样,未添加到显示列表(添加到舞台)的对象不会影响渲染性能。

但是,使用 new 创建对象总是需要时间。因此,如果您编写的函数除了每帧创建1.000对象之外什么都不做,您可能会看到非常明显的性能下降。

但是,对于每种语言都是如此,因此根据经验,您只应在必要时创建对象。

甚至可以重复使用不再需要的对象。看看object pool pattern,看看我的意思。例如,对象池通常用于sidescroller中的项目符号。但这些事情确实是性能改进的一部分。因此,如果您的时间不够而没有用户抱怨,我会在重构阶段进行此类优化。或者你马上做,你的选择;)