Flex定时器延迟变换器?

时间:2012-01-12 08:37:40

标签: flex timer

我需要以下帮助...

var timer:Timer = new Timer(x);

基本上x是一个数组...

调用timer.start()

它运行,第一个计数是1000毫秒,然后是第二个800毫秒,第三个计数是6200毫秒,依此类推。换句话说,它是延迟的动态变化,而不是x ms的连续延迟。

如何做到这一点?任何例子都将不胜感激。

提前谢谢

2 个答案:

答案 0 :(得分: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();
 }

答案 1 :(得分: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();
}