![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Как запустить обратный отчет после нажатия любой клавиши, затем после того как прошло 4 секунды запустить следующий таймер 3 мин
|
|
|||||
package { import flash.display.Sprite; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.TimerEvent; import flash.utils.Timer; /** * ... * @author bav */ public class Main extends Sprite { private var timer:Timer; private var rest:int = 4; private var flag:Boolean = false; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.addEventListener(KeyboardEvent.KEY_DOWN, startTimer); } private function startTimer(e:KeyboardEvent):void { stage.removeEventListener(KeyboardEvent.KEY_DOWN, startTimer); timer = new Timer(1000); timer.addEventListener(TimerEvent.TIMER, timerHandler); timer.start(); } private function timerHandler(e:TimerEvent):void { trace(rest); if (--rest == 0) { trace("Booooom!"); if (flag) { timer.stop(); return; } else { rest = 180; flag = true; } } } } } |
|
|||||
|
Можно сделать подругому. Если известно, что изначальный интервал 1000 милисекунд, то по истечении 4 тиков можно просто поменять интервал на новый, а в условии просто проверять текущий интервал. При этом и другой таймер не нужен будет
package { import flash.display.Sprite; import flash.display.Stage; import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.TimerEvent; import flash.utils.Timer; public class TimerTest extends Sprite { private const INITIAL_TIME:int = 1000; private const TIME:int = 180000; private var _timer:Timer; public function TimerTest() { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); _timer = new Timer(INITIAL_TIME); _timer.addEventListener(TimerEvent.TIMER, onTimer); stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } private function onTimer(e:TimerEvent):void { if (_timer.delay == INITIAL_TIME) { if (_timer.currentCount >= 4) { _timer.reset(); _timer.delay = TIME; _timer.start(); } } else { trace("NEW TIMER TICK"); } } private function onKeyUp(e:KeyboardEvent):void { _timer.start(); } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|