我在做flash平臺遊戲。製作平臺遊戲,需要停止運行的方法
我有一個目標類(包含目標精靈代碼的類,當你點擊它時,它繼續到遊戲的下一部分)。
裏面的目標構造,加入2個事件偵聽器,有如下幾點:
addEventListener(Event.ADDED, beginClass);
addEventListener(Event.ENTER_FRAME, eFrame);
的beginClass功能是好的,只運行一次,但eFrame是什麼檢查,如果玩家擊中目標,所以它不斷運行。問題在於,一旦玩家擊中了目標,eFrame將繼續運行,而在菜單中描述玩家的下一個場景。我的eFrame功能如下。
private function eFrame(event:Event):void{
if(hitTestObject(_root.mcMain)){
var lastScore:int = _root.mainScore;
_root.mainScore = lastScore;
while (_root.lvlHolder.numChildren > 0) {
_root.lvlHolder.removeChildAt(0);
}
_root.mcMain.removeChildAt(0);
_root.isInCut = true;
if (_root.lvlCurrent == 1) {
_root.gotoAndStop(2);
} else if (_root.lvlCurrent == 2) {
_root.gotoAndStop(3);
} else if (_root.lvlCurrent == 3) {
_root.gotoAndStop(4);
}
}
}
第2,3,4幀是隻有文本和向玩家顯示消息的按鈕,然後玩家繼續播放。我的問題是,eFrame仍在嘗試運行,但該類尚未實例化,並且一旦玩家繼續,該方法會造成極大的延遲。
我做到了,但它仍然在做。當我到第2幀時,第1幀的代碼不能正確運行?因爲這是調用目標類的地方。 – Darren 2012-03-13 20:30:15