Могу ли я узнать, что является правильным способом отслеживания созданных объектов отображения и, следовательно, позволяет мне удалить его эффективно позже, для сбора мусора. Например:Как отслеживать объекты для сбора мусора
for(i=0; i<100; i++){
var dobj = new myClass(); //a sprite
addChild(dobj);
}
Из того, что я знаю, вывоз мусора Флэша будет собирать только объекты без сильных ссылок и слушателей событий, прикрепленных к нему.
Поскольку var dobj
категорически ссылается на новый созданный объект, мне также придется «обнулить» его, правильно ли?
Должен ли я создать массив для отслеживания всех объектов, созданных в цикле, такие как:
var objectList:Array = new Array();
for(i=0; i<100; i++)
{
var dobj = new myClass(); //a sprite
addChild(dobj);
objectList.push(dobj);
}
//remove all children
for each (var key in objectList)
{
removeChild(key as myClass);
}
это позволит ли GC собрать его на развертке?
Либо аннулировать его, либо позволить ему выйти из сферы действия. Но так как это передача ссылки объекта на функцию, которая (я предполагаю) сохраняет ссылку, ссылка на объект все еще действительна. – amphetamachine