Создание игровой платформы, нужен метод, чтобы остановить работу
Я делаю платформенную игру на флеше.
У меня есть класс цели (класс, который содержит код для спрайта цели, где при попадании в него он переходит к следующей части игры).
Внутри конструктора цели добавлены 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 все еще пытается быть запущенным, но класс не был создан, а метод вызывает крайнюю задержку, когда игрок продолжает.