Vector中的垃圾收集引用变量

时间:2012-04-10 13:14:34

标签: actionscript-3 actionscript

我正在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。有关如何执行此操作或其他方法进行垃圾收集的任何想法?

由于

克里斯

2 个答案:

答案 0 :(得分:0)

循环遍历所有索引后是否可以执行以下操作

  _customTextVector =null;

答案 1 :(得分:0)

为了使AS3垃圾收集器为您的对象GC,您需要删除对它们的所有引用(包括事件侦听器)。在下一次GC传递时,将释放对象的内存。没有办法直接,立即“取消”你想要的对象。

如果您遇到内存问题,请查看this post