我有一个EnterFrame事件,我想知道调用之间的确切时间,因此当计算机无法产生所需的帧速率时,我将能够更顺畅地为对象设置动画。
答案 0 :(得分:10)
更具体一点。
currentTime = getTimer();
diff = currentTime - prevTime;
prevTime = currentTime;//update for next go around
修改强>
getTimer要求您导入包:flash.utils.getTimer;
答案 1 :(得分:3)
使用getTimer(); ?
答案 2 :(得分:1)
您应该使用内置的Timer函数以某种方式* ENTER_FRAME
独立方式调用方法。
var timer:Timer = new Timer(500, 0);
timer.addEventListener(TimerEvent.TIMER, timerHandler);
timer.start();
private function timerHandler(event:TimerEvent):void
{
// do something
// *EDIT* Thanks @Luke spotting this out (check comments)
event.updateAfterEvent();
}
*)你还需要记住,帧之间不会触发事件处理程序,所以如果你的脚本滞后(由于其他一些过程),这个调用也会被延迟。 确切地说,方法调用将在设置延迟时间之后或之后执行的帧处近似。
答案 3 :(得分:1)
正如其他人所说,getTimer是最好的方式......但我想提出别的建议: 如果你想做基于时间的动画,基于更新的帧,你也可以尝试一些更大的ActionScript补间库,就像caurina Tweener ......他们只是开箱即用,并提供其他很棒的功能......
格尔茨
back2dos