2011-12-07 35 views
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; 


} 
+0

這個問題類似於http://stackoverflow.com/questions/4831300/as3-marking-a-variable-for-garbage-collection-null-or-delete – Micah

回答