我正在AS3应用程序中实现垃圾收集。在一个部分中,在循环中创建了几个显示对象,如下所示:
for(var i:uint = 0; i <= this._exampleVector.length - 1; i++)
{
this._customText = new CustomTextObject(this._exampleVector[i].playlistText), this._customTextWidth);
this.addChild(this._customText);
etc etc
this._customTextVector.push(this._customText); // used for ref in garbage collection
}
然后我通过循环_customTextVector变量来执行垃圾收集准备。
for(var i:uint = 0; i <= this._customTextVector.length - 1; i++)
{
this.removeChild(this._customTextVector[i]);
this._customTextVector[i].gcAllObjects();
**this._customTextVector[i] = null;**
}
当我尝试将_customTextVector中的_customText设为null时,这不起作用。它只使Vector中的索引为null。有关如何执行此操作或其他方法进行垃圾收集的任何想法?
由于
克里斯
答案 0 :(得分:0)
循环遍历所有索引后是否可以执行以下操作
_customTextVector =null;
答案 1 :(得分:0)
为了使AS3垃圾收集器为您的对象GC,您需要删除对它们的所有引用(包括事件侦听器)。在下一次GC传递时,将释放对象的内存。没有办法直接,立即“取消”你想要的对象。
如果您遇到内存问题,请查看this post。