我正在 as3.0 中创建一个小游戏。我在游戏中产生了很多试图粉碎你(玩家)的墙。
我正在尝试从阵列和屏幕中删除您附近的所有墙壁。我第一次点击按钮时,它只会删除 250 像素范围内的所有墙壁。但是我第二次点击按钮时出现以下错误:
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");
}
}
}