//Main Class
package{
public class Main extends MovieClip{
private var bombCarrier:BombCarrier;
private var building:Building;
private var bomb:Bomb;
public var buildingArray:Array;
public function Main(){
bombCarrier = new Carrier();
addChild(bombCarrier);
for(var i:int=0;i<5;i++){
var xPosition:Number = i*105;
building = new Building(xPosition, stage.stageHeight);
addChild(building);
buildingArray.push(building);
}
stage.addEventListener(Event.KeyboardEvent, keyDownFunction);
}
public function keyDownFunction(event:KeyboardEvent){
if(event.keyCode == 70){
bomb = new Bomb(bombCarrier.x, bombCarrier.y, 0.5);
addChild(bomb);
}
}
}
}
//Bomb Class
package{
public class Bomb extends MovieClip{
private var speed:Number;
public function Bomb(x, y, speed){
this.x = x;
this.y = y;
this.speed = speed;
addEventListener(Event.ENTER_FRAME, loop);
}
public function loop(event:Event){
this.y += speed;
for(var i:int=0;i<Main(parent).buildingArray.length;i++){
if(hitTestObject(Main(parent).buildingArray[i])){
this.removeEventListener(Event.ENTER_FRAME, loop);
Main(parent).buildingArray.splice(i, 1);
parent.removeChild(this); //This line got Error
}
}
}
}
}
多くのアプローチを試しましたが、TypeErrorという同じエラーが発生します。エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。Bomb / loop()で。私はすでにコマンドラインを1行ずつデバッグしようとしていますが、これはこのコード行「parent.removeChild(this);」のようです。問題を示しています。