Мне интересно, может ли кто-нибудь ответить на этот вопрос для меня.
Предположим, я создаю экземпляр объекта класса:
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;
}