我在做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