我正在与一个敌人类和一个碰碰类的巡逻敌人进行一场平台游戏,这些类会在碰撞时改变敌人的方向。一旦你打开门并调用nextLevel功能,我需要移除敌人和保险杠。这是nextLevel函数的代码:
function nextLevel():void {
currentLevel++;
trace("Next Level: " + currentLevel);
if (enemyList.length>0) {
for (var i:int = 0; i < enemyList.length; i++) {
trace("enemyRemoved");
enemyList[i].removeSelf();
}
}
if (bumperList.length>0) {
for (var b:int = 0; b < bumperList.length; b++) {
trace("bumperRemoved");
bumperList[b].removeSelf();
}
}
if (currentLevel==2) {
gotoLevel2();
addEnemiesToLevel2();
addBumpersToLevel2();
}
}
if (currentLevel==3) {
gotoLevel3();
addEnemiesToLevel3();
addBumpersToLevel3();
trace("gotoLevel3");
}
适用于转到第2级。但不知何故,当我转到第3级时,我得到错误1009在删除保险杠时无法访问空对象引用的属性。我不明白为什么它适用于2级而不是3并且敌人被移除就好了,这几乎与删除保险杠代码相同。这是我在bumper类中的removeSelf函数
public function removeSelf():void {
trace("remove bumper");
removeEventListener(Event.ENTER_FRAME, bumperloop);
this.parent.removeChild(this);
我的功能是在打开的门上按下向下箭头键以调用nextLevel功能
} else if (e.keyCode == Keyboard.DOWN) {
downPressed=true;
if (doorOpen&&player.hitTestObject(back.other.lockedDoor)) {
nextLevel();
}
任何人都知道这里可能出现什么问题?我会非常感谢任何能够回答我已经工作了好几天的人。它在bumperList [b] .removeSelf();上给出了一个错误。 nextLevel函数和this.parent.removeChild(this)行;在bumper类和nextLevel();我的keydown代码中的行