0
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() 以及这段代码将如何执行。

4

2 回答 2

1

本质上,clearInternal您正在停止drawInterval.

你可以看它,就好像它正在设置一样drawInterval = null

这样做是为了防止多个间隔触发:每次startDrawing调用时,您重置当前正在进行的间隔并启动一个新的间隔,它将在 1000/fps 毫秒内触发,即将在最后一次调用后drawInterval触发1000/fps毫秒。startDrawing

于 2013-08-19T09:36:54.437 回答
0

它只是清除间隔,这样您就不会同时运行多个间隔。

于 2013-08-19T09:41:08.647 回答