如何使用setInterval和ClearInterval?

如何使用setInterval和ClearInterval?

function doKeyDown(event) {
    switch (event.keyCode) {
    case 32:
        /* Space bar was pressed */
        if (x == 4) {
            setInterval(drawAll, 20);
        }
        else {
            setInterval(drawAll, 20);
            x += dx;
        }
        break;
    }}

大家好,

我想打电话drawAll()一次不创建环路那个电话drawAll一次又一次,是使用递归方法还是应该使用递归方法?clearInterval?

也请告诉我用clearInterval?谢谢:)


慕容708150
浏览 587回答 3
3回答

泛舟湖上清波郎朗

setInterval建立一个反复出现定时器。它返回一个可以传入的句柄。clearInterval阻止它开火:var handle = setInterval(drawAll, 20);// When you want to cancel it:clearInterval(handle);handle = 0;  // I just do this so I know I've cleared the interval在浏览器上,句柄保证是不等于0因此,0为“没有计时器集”设置一个方便的标志值。(其他平台可能返回其他值;例如,NodeJS的计时器函数返回一个对象。)将函数调度到只火一次,用setTimeout相反。它不会再开火了。(它还返回一个句柄,您可以通过clearTimeout如果合适的话,在它发射之前一次。)setTimeout(drawAll, 20);

HUX布斯

间隙是一种选择:var interval = setInterval(doStuff, 2000); // 2000 ms = start after 2sec function doStuff() {   alert('this is a 2 second warning');   clearInterval(interval);}
打开App,查看更多内容
随时随地看视频慕课网APP