在我的游戏中,我封装了我的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.
任何人都知道发生了什么事?
答案 0 :(得分:0)
搞清楚。我忘了在移除它后拼接(g,1)对象。它再次循环并尝试再次删除该对象,并在发生错误时将其删除