В моей игре я инкапсулирую свой addChild, чтобы у меня был массив всех объектов, находящихся на сцене, для последующей сборки мусора. вот как я это делаю
public function addGameChild(object:gameObject,isDisplay:Boolean = true):void
{
if(isDisplay)
addChild(object);
gameStage.push(object);
}
Это добавляет это просто отлично. Позже я проверяю, готов ли он для мусора. это
private function loop(e:Event):void {
for(var t = 0; t < gameStage.length; t++)
{
gameStage[t].updateObject();
}
for(var g = 0; g < gameStage.length; g++)
{
if(gameStage[g].garbage)
{
removeChild(gameStage[g]);
}
}
}
каждый gameObject имеет свойство garbage, которое является логическим значением, которое устанавливается, когда готово к удалению. Когда я установил его на дерево, это то, что происходит
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
Кто-нибудь знает, что происходит?