我正在编写一个用ActionScript 3编写的Flash程序,我试图确定是否应该将它们从舞台上移除,当它们不在屏幕上时,或者只是当它们在屏幕外时停止移动它们观景区。如果我一旦移出观看区域就不会删除Child()MovieClip,我可能最终会在舞台上结束数万个MovieClip(虽然不在视图中)。
在不在视图中时,是否存在隐藏与删除MovieClip的标准建议?
基本上,我试图找出:
谢谢!
- EDIT-- 在我的程序中,MovieClips通常必须重新出现在屏幕上。这意味着当我从舞台上删除它们时,可能必须将它们添加回来。如果我将它们隐藏在屏幕外,它们可能必须移回屏幕上。这就是为什么我不只是删除Child()所有内容并将对象置空。
答案 0 :(得分:2)
将MovieClip放在舞台上但在观看区域之外 使用大量资源?
无论是在观看区域的内部还是外部,您的MovieClip都会使用相同数量的内存。
删除和添加MovieClip会有多少惩罚 舞台招致?
删除/归零很便宜,创建新对象要贵得多。
是否估计您正在使用多少个MovieClip 在你应该从一种方法切换到另一种方法之前?
如果您正在处理数百或数千个实例,请查看object pooling。
还有一个不错的video tutorial about object pooling。如果您想了解有关销毁/创建显示对象的更多信息,这是值得关注的。
答案 1 :(得分:1)
如果您不打算重复使用动画片段,则应该删除它们。这个动作是无成本的,它可以释放你的动画片段的记忆。有一个隐藏的movieclip使用相同数量的内存,它在显示过程中更容易(你的应用程序不会滞后,但这是一个主要的内存泄漏)。
答案 2 :(得分:1)
如果不使用它们,最好将其删除。如果它是一个移动的项目(例如以5px / s的x速度),即使它离开屏幕,该项目仍在处理中并且移动得越来越远。
基本上,如果它没有被使用并且没有任何用途,那么将其删除以节省资源。