这是我正在开发的一个小 Flash 游戏的一个小片段:
这一点来自我的 GamePlayScreen 课程:
public function handleKeyboard(e:KeyboardEvent):void {
if(e.type == KeyboardEvent.KEY_DOWN && e.keyCode == Keyboard.ENTER) {
var enemy:EnemyShip = new EnemyShip();
enemyships.push(enemy);
addChild(enemyships[enemyships.length-1]);
}
}
这一点导致错误(我用*标记了该行)
for each (var enemy:EnemyShip in Game.gameplay.enemyships) {
if(this.hitTestObject(enemy)) {
*enemy.parent.removeChild(enemy);
}
game 是在我的文档类 Game 中声明的 GamePlayScreen 的一个实例。我已经追踪了enemy.parent,它告诉我它是[Object GamePlayScreen],但错误告诉我它是空的?
这是错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Laser1/moveUp()[C:\Dev\Projects\Gamedev\Flash\classes\Laser1.as:23]
我尝试了一切,跟踪每一行,但仍然没有结果......即使我使用
if(Game.gameplay.contains(enemy) {
enemy.parent.removeChild(enemy);
}
它继续再次偶然发现这个错误......我一无所知......