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