+ -
当前位置:首页 → 问答吧 → Timer作定时器是不是不准阿?

Timer作定时器是不是不准阿?

时间:2007-06-25

来源:互联网

本来以为这应该是个很精确的定时器,可是刚才发现它好像不是很准,总是慢一些:
复制内容到剪贴板
代码:
var t:Timer=new Timer(1000);
t.addEventListener(TimerEvent.TIMER,f);
t.start();
function f(e:TimerEvent){
    trace(getTimer()); //??
}
输出信息为:
复制内容到剪贴板
代码:
1047
2063
3119
4176
5231
6279
7335
8391
明显间隔要比1秒多,如果把trace()语句换成myText.text=e.target.currentCount;显示的速度也跟不上实际正确的速度
哪里出错了?

作者: youxiazhu   发布时间: 2007-06-25

跟你的CPU等硬件关系密切

作者: mjking   发布时间: 2007-06-25

是不是电力不够

作者: tianbian00   发布时间: 2007-06-25

getTimer()得到的值应该没错,可能是你trace的间隔有问题

作者: QueenFather   发布时间: 2007-06-25

没有绝对的准确,只是近似模拟

AS2的
setInterval也一样

作者: ycccc8202   发布时间: 2007-06-25

应该是不准的 越精确越不准

作者: jevin   发布时间: 2007-06-25

原来果真如此!
但是我看网上有不少用这个东西做的秒表程序,都挺准的阿?(难道像vc中的timer组件和AS3里的Timer不是一个原理?)

如果我想用AS3做一个能准确定时的东西,应该怎么做呢?

作者: youxiazhu   发布时间: 2007-06-25

难道没有人作对时间要求很严格的程序吗?

作者: youxiazhu   发布时间: 2007-06-26

只要你的系统时间准,你隔一段时间和系统时间核对一下就可以了

作者: Anubiss   发布时间: 2007-06-26

这样啊,如果做一个秒表,怎么核对阿?

作者: youxiazhu   发布时间: 2007-06-26

用getTimer() 然后做减法比较时差。

作者: darkvn   发布时间: 2007-06-26

提醒:最后回贴距现在 1488 天,请不要无意义回复

秒表你这样做:
var t:Timer=new Timer(300); 这个值100-500之间
其实这样大部分人分不出100毫秒。

flash的计时器没办法做到非常精准,拼死了也就15毫秒的精度。

作者: FlashK   发布时间: 2011-07-23

因为就算是取时间是准的,但是你其他语句运行、计算、输出也需要时间吧,所以导致了最后输出不准

作者: zsuzjs   发布时间: 2011-07-23