ArgumentError:错误#2025:提供的DisplayObject必须是调用者的子级

时间:2010-01-15 18:26:25

标签: flash actionscript-3 actionscript flash-cs4

在我的游戏中,我封装了我的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 :(得分:0)

搞清楚。我忘了在移除它后拼接(g,1)对象。它再次循环并尝试再次删除该对象,并在发生错误时将其删除