0
我正嘗試在我的太空船遊戲的屏幕上創建一個遊戲,當玩家的盾牌達到0時,它會轉到屏幕上的遊戲並停止遊戲。遊戲在屏幕上工作,但我無法停止遊戲。當玩家的盾牌達到0時,我試圖將Ship設置爲null,但是我得到了1009的錯誤。當公共函數fGameStart(evt:Event):void { 「執行,有沒有辦法阻止這個功能在遊戲結束時運行?任何幫助是極大的讚賞!AS3調試時出現錯誤1009
public class Engine extends MovieClip {
private var preloader: ThePreloader;
public function Engine() {
stage.addEventListener("gameSTART", fGameStart);
stage.addEventListener("gameOVER", fGameOver);
}
private var numStars: int = 80;
public static var enemyList: Array = new Array();
private var ourShip: Ship;
public function fGameStart(evt: Event): void {
ourShip = new Ship(stage);
ourShip.x = stage.stageWidth/2;
ourShip.y = stage.stageHeight/2;
ourShip.addEventListener("hit", shipHit, false, 0, true);
stage.addChild(ourShip);
for (var i: int = 0; i < numStars; i++) {
stage.addChildAt(new Star(stage), stage.getChildIndex(ourShip));
}
addEventListener(Event.ENTER_FRAME, loop, false, 0, true);
function loop(e: Event): void {
if (Math.floor(Math.random() * 20) == 5) {
var enemy: Stinger = new Stinger(stage, ourShip);
enemy.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemy.addEventListener("killed", enemyKilled, false, 0, true);
enemyList.push(enemy);
stage.addChild(enemy);
}
else if (Math.floor(Math.random() * 80) == 5) {
var enemy2: Stinger2 = new Stinger2(stage, ourShip);
enemy2.addEventListener(Event.REMOVED_FROM_STAGE, removeEnemy, false, 0, true);
enemy2.addEventListener("killed", enemyKilled, false, 0, true);
enemyList.push(enemy2);
stage.addChild(enemy2);
}
}
}
public function fGameOver(e: Event) {
gotoAndStop(4);
ourShip = null;
}
}
非常感謝,它的工作原理! –
如果函數「public function fGameStart(evt:Event):」包含其他遊戲對象,我該如何刪除整個函數?我試過 「removeEventListener(」gameSTART「,GameStart);」但它沒有奏效。 –
你不能刪除函數,它們在可能時被垃圾回收/閃存感覺就像它 –