Показать сообщение отдельно
Старый 13.09.2012, 07:42
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Можно сделать подругому. Если известно, что изначальный интервал 1000 милисекунд, то по истечении 4 тиков можно просто поменять интервал на новый, а в условии просто проверять текущий интервал. При этом и другой таймер не нужен будет
Код AS3:
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();
		}
	}
}