如果在其他地方没有引用,函数内部创建的Objetcs会自动标记为垃圾回收?AS3范围和垃圾回收
我们说,我有一个名为SubClass的类。在构造函数中,我创建了一些displayObjects。 然后我将子类放在某个地方。当我删除这个SubClass实例时,是否将里面的对象标记为垃圾收集?
在此先感谢! 欢呼声 Bruno
如果在其他地方没有引用,函数内部创建的Objetcs会自动标记为垃圾回收?AS3范围和垃圾回收
我们说,我有一个名为SubClass的类。在构造函数中,我创建了一些displayObjects。 然后我将子类放在某个地方。当我删除这个SubClass实例时,是否将里面的对象标记为垃圾收集?
在此先感谢! 欢呼声 Bruno
是的,除非SubClass的成员在子类之外的任何地方有引用,或者在SubClass(或其中的任何对象)中保留对类的外部的主动引用。
后者的典型示例是SubClass订阅Stage事件;如果监听器不弱(addEventListener的第5个参数),您将保持舞台和SubClass实例之间的活动链接,即使您删除该对象并将其设为null,它也不会被收集。 对于简单的侦听器,您可以将第五个参数设置为true,因此引用很弱并且会被垃圾收集器破坏。对于更复杂的情况(或者例如NetStreams,Loaders,Timeline audio等等),您需要创建一种方法让类为任何外部对象解除链接,并停止任何可能阻止收集的进程,如公共销毁()方法,关闭请求,停止媒体,removeListeners等...
但是,然后再次,对于简单的情况下,当你只有孤立的孩子,没有引用到你的课外,只需删除你的实例和null它的引用应该足够垃圾收集。
非常感谢!该类没有引用其他类或对象。 – Drala 2011-02-11 15:41:41