var fps = 30;
var drawInterval;
imageSprite.addEventListener('load',init,false);
function init() {
drawBg();
startDrawing();
}
function draw() {
clearJet();
drawJet();
}
function startDrawing() {
stopDrawing();
drawInterval = setInterval(draw,1000 / fps);
}
function stopDrawing() {
clearInterval(drawInterval);
}
谁能解释为什么我们在drawInetrval之前执行函数stopDrawing((以及这段代码将如何执行。
本质上,
clearInternal
您正在停止 drawInterval
引用的间隔。
你可以把它看成是设置drawInterval = null
。
这样做是为了防止多个间隔触发:每次调用startDrawing
时,您重置当前正在进行的间隔并启动一个新的间隔,该间隔将在 1000/fps 毫秒内触发,即 drawInterval
将在最后一次调用 startDrawing
后 1000/fps
毫秒触发。
它只是清除间隔,这样您就不会同时运行多个间隔。