Flash as3平台游戏错误1009

时间:2016-04-28 03:23:42

标签: actionscript-3 flash

我正在与一个敌人类和一个碰碰类的巡逻敌人进行一场平台游戏,这些类会在碰撞时改变敌人的方向。一旦你打开门并调用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代码中的行

0 个答案:

没有答案