我有5个精灵(5个街区,每个街区都比之前的小)。 他们画的太快了。如何正确使用新的Date(),getMilliseconds或其他方法来定时绘制一些延迟?
对于前。
for ( i = 0; i < 5; i ++ ) {
xxx.drawImage(sprite, i, etc);
}
答案 0 :(得分:0)
使用setInterval()
或setTimeout()
设置计时器。但是由于javascript的单线程特性,你应该注意到这两个函数之间的细微差别。我们来看看这个例子:
setTimeout(function test() {
//your code
setTimeout(test, 100);
}, 100);
setInterval(function() {
//your code
}, 100);
这两个代码块似乎是相同的,但由于javascript的单线程特性,情况并非如此。
使用setInterval()
:如果您的代码忙于执行并需要很长时间才能完成。下一个时间间隔可能会在您的代码仍在执行时触发,并且这些时间间隔将排队等候。最后,您最终会有一些处理程序连续运行没有任何延迟
使用setTimeout()
:当您的当前代码已完成时,下一个时间间隔仅设置为。这保证了下一次执行永远不会小于间隔(在这种情况下为100),只等于或更长。