1

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

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

如果是这样,那么是否有一种更有效和更有用的方式来重新排序而不添加作为儿童的精灵?

如果没有,请告诉我。

谢谢!:)

4

1 回答 1

1

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

但是,使用new创建对象总是要花费时间。因此,如果您编写的函数只在每帧创建 1.000 个某种对象,您可能会看到非常明显的性能下降。

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

甚至可以重复使用不再需要的对象。查看对象池模式以了解我的意思。例如,对象池通常用于横向滚动条中的项目符号。但这样的事情确实是性能改进的一部分。因此,如果您的时间不多并且没有用户抱怨,我会在重构阶段进行此类优化。或者你只是马上做,你的选择;)

于 2012-07-11T14:50:55.543 回答