【发布时间】:2009-05-30 13:31:52
【问题描述】:
我有一个 EnterFrame 事件,我想知道调用之间的确切时间,这样当计算机无法产生所需的帧速率时,我将能够更流畅地为对象制作动画。
【问题讨论】:
标签: actionscript-3
我有一个 EnterFrame 事件,我想知道调用之间的确切时间,这样当计算机无法产生所需的帧速率时,我将能够更流畅地为对象制作动画。
【问题讨论】:
标签: actionscript-3
更具体一点。
currentTime = getTimer();
diff = currentTime - prevTime;
prevTime = currentTime;//update for next go around
编辑
getTimer 需要你导入包:flash.utils.getTimer;
【讨论】:
使用 getTimer(); ?
【讨论】:
正如其他人所说,getTimer 是最好的方法......但我想提出其他建议: 如果您想做基于时间的动画,即基于更新的帧,您还可以尝试一些更大的 ActionScript 补间库,如 caurina Tweener ...他们只是开箱即用并提供其他出色的功能...
问候
back2dos
【讨论】:
您应该使用内置的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();
}
*) 你仍然需要记住,事件处理程序不会在帧之间触发,所以如果你的脚本滞后(因为其他一些进程),这个调用也会被延迟。 准确地说,方法调用将近似于设置的延迟时间同时或刚执行的帧。
【讨论】: