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

ベストアンサー1

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「タイマーが設定されていない」ことを示す便利なフラグ値になります。(他のプラットフォームでは他の値が返される場合があります。たとえば、Node.js のタイマー関数はオブジェクトを返します。)

関数をスケジュールするにはのみ一度だけ発砲する場合は、setTimeout代わりに を使用してください。発砲し続けることはありません。(適切な場合は、その 1 回発砲する前にキャンセルするために使用できるハンドルも返されますclearTimeout。)

setTimeout(drawAll, 20);

おすすめ記事