在js中使用新的Date()定时器

时间:2013-08-01 13:51:53

标签: javascript

我有5个精灵(5个街区,每个街区都比之前的小)。 他们画的太快了。如何正确使用新的Date(),getMilliseconds或其他方法来定时绘制一些延迟?

对于前。

for ( i = 0; i < 5; i ++ ) {
    xxx.drawImage(sprite, i, etc);
}

1 个答案:

答案 0 :(得分:0)

使用setInterval()setTimeout()设置计时器。但是由于javascript的单线程特性,你应该注意到这两个函数之间的细微差别。我们来看看这个例子:

setTimeout(function test() {
   //your code
   setTimeout(test, 100);
}, 100);

setInterval(function() {
     //your code
}, 100);

这两个代码块似乎是相同的,但由于javascript的单线程特性,情况并非如此。

  • 使用setInterval():如果您的代码忙于执行并需要很长时间才能完成。下一个时间间隔可能会在您的代码仍在执行时触发,并且这些时间间隔将排队等候。最后,您最终会有一些处理程序连续运行没有任何延迟

  • 使用setTimeout():当您的当前代码已完成时,下一个时间间隔仅设置为。这保证了下一次执行永远不会小于间隔(在这种情况下为100),只等于或更长。