ArgumentError: Ошибка № 2025: указанный объект DisplayObject должен быть дочерним по отношению к вызывающей стороне. - PullRequest
0 голосов
/ 15 января 2010

В моей игре я инкапсулирую свой 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.

Кто-нибудь знает, что происходит?

1 Ответ

0 голосов
/ 15 января 2010

Разберись. Я забыл соединить (g, 1) объект после его удаления. Он снова зациклился и снова попытался удалить объект, и вот, когда была выдана ошибка

...