as3:数组拼接是否完全删除了一个对象?

时间:2011-10-09 06:55:02

标签: actionscript-3 garbage-collection array-splice

我在数组中有很多显示对象,我不断添加并从舞台中删除。删除后,它们将不再使用。

考虑到displayObject不在显示列表中,并且没有事件监听器......如果我使用splice将其从数组中删除,它会被垃圾收集吗?

如果我先将对象置空,会更安全吗?

myArray[2] = null;
myArray.splice(2,1);

2 个答案:

答案 0 :(得分:5)

只要没有对DisplayObject的剩余引用,然后是,使用splice将其从数组中删除,或者甚至只是将其设置为null将允许它成为垃圾收集候选人。

更新:在从阵列中删除之前将项目设置为null是多余的,并没有任何区别。

答案 1 :(得分:1)

如果您需要更好的性能,我建议您使用池而不是创建大量对象并将它们放在数组中。使用一些链表实现而不是splice()操作,这非常慢。