2
我想知道是否有人可以爲我回答這個問題。AS3內存管理基礎知識
假設我創建一個類對象的實例:
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;
}
這個問題類似於http://stackoverflow.com/questions/4831300/as3-marking-a-variable-for-garbage-collection-null-or-delete – Micah