2012-11-27 57 views
2

我在AS3.0创建一个小游戏引发ArgumentError:错误#2025:提供的DisplayObject必须是调用

我催生了很多游戏中的墙,试图摧毁你的孩子(玩家)下面的代码我尝试从数组和屏幕上删除所有靠近你的墙。 我第一次点击它的按钮时,它只会删除250px范围内的所有墙。但第二次按下按钮时出现以下错误:

ArgumentError:错误#2025:提供的DisplayObject必须是调用方的子节点。

我想这是因为试图删除谁已经被删除了的孩子的。我试图 检查,如果孩子用下面的代码存在,但它似乎没有工作:

if (wallArray[i] != null && contains(wall)) { 
    if (wallArray[i].x < 250 + wp_reach){ 
     //haalt de muur weg 
     //TODO : KIJK OF HET KIND IS 

      removeChild(wallArray[i]); 
     } 

    } 

这里按下按钮的完整代码:

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

action.addEventListener(TouchEvent.TOUCH_TAP, fl_TapHandler); 

function fl_TapHandler(event:TouchEvent):void 
{ 


for (var i:Number=0;i<wallArray.length;i++){ 


    if (wallArray[i] != null && contains(wall)) { 
    if (wallArray[i].x < 250 + wp_reach){ 



      removeChild(wallArray[i]); 
     } 

    } 

    else{ 

    trace ("There is no wall in range yet"); 
    } 

} 
} 

希望任何人都知道解决方案。

在此先感谢和抱歉我的英语不好!我已经尽力了。

回答

1

总是测试,如果在查询产品你想从如下删除其容器的孩子:

if(wallArray[i] && contains(wallArray[i])) 
{ 
    removeChild(wallArray[i]); 
} 

问候

相关问题