1. ホーム
  2. javascript

[解決済み] setIntervalとclearIntervalの使い方を教えてください。

2022-05-08 16:22:33

質問

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 ? ありがとうございます :)

解決方法は?

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 は、quot;no timer set"の便利なフラグ値になります。 (他のプラットフォームでは他の値を返すかもしれません。例えば、NodeJSのタイマー関数はオブジェクトを返します。)。

関数をスケジュールするには のみ を使用すると、一度だけ火をつけることができます。 setTimeout 代わりに 何度も発射されることはありません。(また、このハンドルは clearTimeout を実行する前に、適切であれば、その一回だけ実行します)。

setTimeout(drawAll, 20);