1

これが私のコードです。

     <head>
        <style type="text/css">

        </style>

        <script type="text/javascript">
              var pressed = 0

            function pullNumber() {
                var x=document.getElementById("number")
        x.innerHTML=Math.floor((Math.random()*100)+20);
            }
            function beginCountup() {
                var display = document.getElementById("display"),
                i = 0;
                setInterval(function(){display.textContent = ++i; }, 50);

            }
            window.onkeypress = function(event) {
                if (event.keyCode == 32) {
                beginCountup();
        }
            }
       </script>
     </head>

     <body>
        <h1>Stop the spacebar at:</h1><h1 id="number">0</h1>
        <button onclick="pullNumber()">Roll new number</button>
        <h1 id="display">0</h1>

     </body>

    </html>

コンセプト: ボタンを押して乱数をロールし (数字をロールします)
、プレイヤーがヒット (スペースバー 32)
します。プレイヤーの目標は、プレイヤーがゴール番号の 5 以内で停止することです
(後で速度を変更する可能性があります)
。 .
しかし、スペースバーを押すと別の機能に切り替わる 多機能を持たせる方法がわかりません。

もう一度スペースを開始し、スペースを停止します

4

2 に答える 2

0

clearInterval()javascript の関数を使用して、以前に設定された間隔をクリアできます。

setInterval()それをクリアするには、関数の IntervalID が必要です。例 :clearInterval(IntervalID);

ここでは、2 つの変数を作成できます。

1. を格納する場合IntervalID: 関数の呼び出し中に使用されclearInterval()ます。

2. ループのステータスを保存するため: ループが実行されている場合は、スペースバーが押されたときにループを停止する必要があります。ループが実行されていない場合は、開始します。

コードは次のとおりです。

  <head>
        <style type="text/css">

        </style>

        <script type="text/javascript">
              var intervalID;
              var isCounntRunning=false;
              var pressed = 0


            function pullNumber() {
                var x=document.getElementById("number")
        x.innerHTML=Math.floor((Math.random()*100)+20);
            }
            function beginCountup() {
                var display = document.getElementById("display"),
                i = 0;
                intervalID=setInterval(function(){display.textContent = ++i; }, 50);

            }
            window.onkeypress = function(event) {
                if (event.keyCode == 32) {
                if(!isCounntRunning)
                {
                isCounntRunning=true;
                beginCountup();
                }
                else
                {
                isCounntRunning=false;
                clearInterval(intervalID);
                }
        }
            }
       </script>
     </head>

     <body>
        <h1>Stop the spacebar at:</h1><h1 id="number">0</h1>
        <button onclick="pullNumber()">Roll new number</button>
        <h1 id="display">0</h1>

     </body>

    </html>
于 2013-11-09T14:18:42.240 に答える
0

変数に割り当てsetInterval()て、そこで停止できます。

window.onkeypress = function(e){
    if (e.keyCode == 32){
        clearInterval(window.interval)
    }
}

setInterval(function(){display.textContent = i++; }, 50);
そしてに変更
window.interval = setInterval(function(){display.textContent = i++; }, 50);

于 2013-11-09T14:02:40.160 に答える