Flash AS3内存管理基础

Flash AS3内存管理基础,flash,actionscript-3,Flash,Actionscript 3,我想知道是否有人能帮我回答这个问题 假设我创建了一个类对象的实例: var holderObject:HolderObject = new HolderObject(); addChild(holderObject); 作为HolderObject构造函数代码的一部分,它分配10个新实例变量: var mcArray:Array = new Array(); for (var i:uint = 0; i > 9; i++) { var newMC:MovieClip = new Mov

我想知道是否有人能帮我回答这个问题

假设我创建了一个类对象的实例:

var holderObject:HolderObject = new HolderObject();
addChild(holderObject);
作为HolderObject构造函数代码的一部分,它分配10个新实例变量:

var mcArray:Array = new Array();

for (var i:uint = 0; i > 9; i++) {
var newMC:MovieClip = new MovieClip();
newMC.addEventListener(MouseEvent.CLICK, doSomething, false, 0, true);
mcArray.push(newMC);
addChild(newMC);
}
如果我现在设置holderObject=null

这些内存分配中的任何一个都可以用于垃圾收集吗

或者我是否需要明确撤销我所做的步骤,即:

destroyHolder(holderObject);


function destroyHolder(theHolder:HolderObject):void {

 for (var i:uint = 0; i > 9; i++) {

    theHolder.mcArray[i].removeEventListener(MouseEvent.CLICK, doSomething);
    theHolder.removeChild(theHolder.mcArray[i]);
    theHolder.mcArray.splice(theHolder.mcArray.length-1, 1);   

 }

removeChild(theHolder);
theHolder = null;


}

是的,如果没有其他对这些对象的引用,它们将被垃圾收集

这个问题类似于