#actionscript-3 #timer #focus
#actionscript-3 #таймер #фокус
Вопрос:
Я работаю над мобильной флеш-игрой. Если приложение теряет фокус (например, поступает вызов) Мне нужно, чтобы таймер игры остановился, пока фокус не будет восстановлен. Вот мой текущий код, но я получаю «Ошибку несоответствия количества аргументов» в Deactivate (). Ожидалось 0, получено 1.
Я думаю, вот соответствующий код:
addEventListener(Event.ACTIVATE, onActivate);
addEventListener(Event.DEACTIVATE,onDeactivate);
public function onActivate():void {
addEventListener(Event.ENTER_FRAME, showTime);
}
public function onDeactivate():void {
removeEventListener(Event.ENTER_FRAME, showTime);
}
Я получаю ошибку при тестировании во flash и закрываю окно. Чего я не понимаю? Спасибо за любую помощь, которую вы можете предложить.
Комментарии:
1. Вы пропустили аргумент event, ваши обработчики событий должны выглядеть следующим образом:
public function onActivate(e:Event):void {}
иpublic function onDeactivate(e:Event):void {}
.
Ответ №1:
OnActivate и OnDeactivate являются прослушивателями событий. Это означает, что они будут вызываться с аргументом события. Дайте им что-то вроде этого: onDeactivate(event:Event):void
.
Комментарии:
1. И если вы не получаете ошибок при OnActivate, это означает только, что он не вызывается 🙂
2. Я думаю, что правильный термин — обработчики событий, поскольку они обрабатывают события, хотя это не имеет большого значения, я просто любитель терминологии.
3. Работает. Спасибо. Думал, что я уже пробовал что-то подобное, но, похоже, нет.