彻底销毁Flash对象

彻底销毁Flash对象,flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,当我销毁舞台上的物品时。我通常只是删除child(this),然后删除对象的事件侦听器。这就是我要完全删除对象所需要做的一切吗???这取决于你在你使用的类中有什么,如果它是一个已加载的类,你必须卸载它,如果你有一个变量包含对其他DisplayObject的引用,你应该将它们置空,等等 这取决于您所使用的类中包含的内容,如果它是已加载的类,则必须卸载它,如果您有包含对其他DisplayObject的引用的变量,则应将它们设为null,等等 是的。。。有点 在AS3中,您不能销毁对象。您所能做的就是

当我销毁舞台上的物品时。我通常只是删除child(this),然后删除对象的事件侦听器。这就是我要完全删除对象所需要做的一切吗???

这取决于你在你使用的类中有什么,如果它是一个已加载的类,你必须卸载它,如果你有一个变量包含对其他
DisplayObject
的引用,你应该将它们置空,等等

这取决于您所使用的类中包含的内容,如果它是已加载的类,则必须卸载它,如果您有包含对其他
DisplayObject
的引用的变量,则应将它们设为null,等等

是的。。。有点

在AS3中,您不能销毁对象。您所能做的就是删除对它们的所有引用,从而使它们可用于垃圾收集。下次运行GC时,如果它们可用,它将销毁它们。这是一个相当大的主题,但基本上,永远记住删除所有引用,你将朝着正确的方向前进

请记住,代码仍然可以在GC可用的对象中执行,这有点奇怪,但需要注意的是。

是。。。有点

在AS3中,您不能销毁对象。您所能做的就是删除对它们的所有引用,从而使它们可用于垃圾收集。下次运行GC时,如果它们可用,它将销毁它们。这是一个相当大的主题,但基本上,永远记住删除所有引用,你将朝着正确的方向前进


还请记住,代码仍然可以在可用于GC的对象中执行,这有点奇怪,但需要注意的是。

因此我应该为显示对象删除它们。然后将它们设为空??执行删除所有引用所需的所有操作。这包括从显示对象中删除它们。如果你想详细了解它是如何工作的,那么请查看Alan发布的一个很棒的链接。但是是的,一定要从显示列表中删除,并清空所有引用。确保停止和计时器,并删除事件侦听器!为了清楚起见,普遍的答案是“删除对对象的所有引用”。附带的回答是,如果一个对象在显示列表中,它的父对象会保留对它的引用,因此从显示列表中删除它是删除对它的所有引用所必需的。因此,我应该为显示对象删除它们。然后将它们设为空??执行删除所有引用所需的所有操作。这包括从显示对象中删除它们。如果你想详细了解它是如何工作的,那么请查看Alan发布的一个很棒的链接。但是是的,一定要从显示列表中删除,并清空所有引用。确保停止和计时器,并删除事件侦听器!为了清楚起见,普遍的答案是“删除对对象的所有引用”。附带的答案是,如果某个对象在显示列表中,其父对象将保留对该对象的引用,因此从显示列表中删除该对象对于删除对该对象的所有引用是必要的。从阶段中删除,并将其设置为null。这是否也会删除eventlisteners不,您将不得不删除EventListener尽管您可以使用弱引用创建事件侦听器,以便在事件侦听器是对象的最后一个保持时对对象进行垃圾收集。请从阶段中删除,并将其设置为null。如果事件监听器是对象的最后一个保持,则可以使用弱引用创建事件监听器,从而允许对对象进行垃圾收集。