2012-01-12 2 views
0

私はtimer.start()フレックスタイマ遅延チェンジャー?

に呼び出されたときに

それは、その後、最初のカウントが1000ミリ秒である、走る...

var timer:Timer = new Timer(x); 

基本的にxが配列です...以下の助けが必要第2の800ミリ秒、第3の6200ミリ秒などである。言い換えれば、遅延の動的な変化であり、x msの連続的な遅延ではありません。

どうすればいいですか?どんな例でも大変感謝しています。

は右であることを特徴とする何@package事前に

答えて

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

、ありがとうございました。あなたのコメントに基づいて、何百もの遅延がありますが、これはより良いコードになります。

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

ありがとう、これははるかにクリーンです。私は配列のインデックス0をスキップしていたので、timer.currentCountを(timer.currentCount-1)に変更しました。 – Zubair