2012-01-12 4 views
0

мне нужна помощь в следующем ...Смена таймера задержки таймера?

var timer:Timer = new Timer(x); 

в основном х представляет собой массив ...

когда timer.start() вызывается

он работает, первый отсчет составляет 1000 мс, то второй 800 мс, и третий 6200 мс и так далее. Другими словами, это динамическое изменение задержки, а не непрерывная задержка x ms.

Как это можно сделать? Будем очень благодарны за любые примеры.

Спасибо заранее

ответ

2
var timer:Timer = new Timer(delay); 
timer.addEventListener(TimerEvent.TIMER, timerHandler); 
timer.start(); 
function timerHandler(e:TimerEvent):void 
{ 
    timer.stop(); 
    if (timer.currentCount == 1) { 
     timer.delay = 800; 
    } else if (timer.currentCount == 2) { 
     timer.delay = 6200; 
    } else { 
     //other conditions 
    } 
    timer.start(); 
} 
+0

Спасибо! Он отлично поработал, я изменил его на цикл for, потому что у меня сотни задержек. – Zubair

1

Что @package сказал правильно. Основываясь на вашем комментарии о том, что у вас сотни задержек, это будет лучший код.

var delays:Array=[1000, 500, 6200, ...]; 
var timer:Timer = new Timer(delay); 
timer.addEventListener(TimerEvent.TIMER, timerHandler); 
timer.start(); 
function timerHandler(e:TimerEvent):void { 
    timer.stop(); 
    timer.delay = delays[timer.currentCount-1]; 
    timer.start(); 
} 
+1

Спасибо, это намного чище. Я изменил timer.currentCount на (timer.currentCount-1), потому что он пропускал индекс 0 массива. – Zubair

Смежные вопросы