Показать сообщение отдельно
Старый 07.09.2011, 20:15
wolhw вне форума Посмотреть профиль Отправить личное сообщение для wolhw Найти все сообщения от wolhw
  № 1  
Ответить с цитированием
wolhw

Регистрация: Oct 2010
Сообщений: 57
По умолчанию Помогите разобратся с Timer()

Хочу организовать контролированое ускорение спавна обьектов, делаю ето так:
Код AS3:
        private var timer_raund: Timer;
	private var timer_secunda: Timer;
	private var timer_faster: Timer;
	private const MIN_del: int=300;
	private const startDel: int=1100;
	private var faster_delay: int=startDel;
	private var tick_del: int=10;
 
	// timer-----------------------------------------
	public function ModelCore()
	{
		super();
 
		timer_raund=new Timer(raundLen);
		timer_raund.addEventListener(TimerEvent.TIMER,tick_raundEnd);
		timer_secunda=new Timer(1000);
		timer_secunda.addEventListener(TimerEvent.TIMER,tick_secunda);
		timer_faster=new Timer(faster_delay);
		timer_faster.addEventListener(TimerEvent.TIMER,tick_faster);
	}
 
private function tick_secunda(event: TimerEvent): void
	{
		if(timer_faster.delay>MIN_del){
			faster_delay-=tick_del;
		timer_faster.delay=faster_delay;
		}
		// event.updateAfterEvent();
		secunda();
	}
 
	private function tick_faster(e: TimerEvent): void
	{
		trace(e.target.delay);
 
		spam();
		// e.updateAfterEvent();
	}
 
private function secunda(): void
	{
		secundomir--;
		dispatchEvent(new Event(Model.SECUNDA));
	}
 
private function tick_raundEnd(event: TimerEvent): void 
	{
		timer_raund.stop();
		timer_secunda.stop();
		timer_faster.stop();
		faster_delay=startDel;
		secundomir=0;
		dispatchEvent(new Event(Model.END_ROUND));
	}
 
	public function startRaund(): void 
	{	
		timer_faster.start();
		timer_raund.start();
		timer_secunda.start();
 
		secundomir=raundLen/1000;
 
		dispatchEvent(new Event(Model.START_ROUND));
	}
проц загружен на 30%

1. почему когда startDel > 960(вычислил експрериментальным путем) спавн начинается с задержкой больше 5 сек?
2. delay трейсит что меняет но на самом деле ускорятся начинает только когда daley < 500 делая ето мгновенно, а мне нужно плавное ускорение.
И если можно както подругому без таймеров и фреймов реализовать ускорение подскажите как плиз