假设我有一个每100毫秒滴答一次的计时器。
在某些事件发生后,我需要将该刻度值更改为120,并且每20毫秒我想再将其增加20,所以最终会出现这样的情况:
100,100,100,100,100,< -event>,120,140,160,180,200,200,200,200, - >结束。
我经历了Timer类的方法,但在这种情况下似乎没什么用。
我意识到我每次都可以销毁并创建一个新的Timer对象,但它并不漂亮。
基本上,我想减速定时器以创建补间效果。
答案 0 :(得分:1)
您可以跟踪刻度或时间的数量,然后调整计时器的延迟属性。 例如:
// class level
private var _timer:Timer;
private var totalTime:int;
//inside method that creates timer
totalTime = 0;
_timer = new Timer(1000, 5);
_timer.addEventListener(TimerEvent.TIMER, updateTimer);
_timer.start();
// inside your function
private function updateTimer(event:TimerEvent):void
{
if(totalTime == 5000) // seconds
_timer.delay = 10000;
}
答案 1 :(得分:1)
您可以简单地使用delay
类的Timer
专属:
var dt:int= 100;
var myTimer:Timer = new Timer(dt); // myTimer's delay is dt
myTimer.addEventListener("timer", timerHandler);
myTimer.start();
function timerHandler(event:TimerEvent):void {
if (/*my event here*/) dt += (dt < 200) ? 20 : 0;
event.target.delay = dt;
// trace(event.target.delay);
}
详细了解Timer class
。