2017-03-04 11 views
0

私のようないくつかの解決策が見つかりました:JavaScript:矢印キーバインディングを取得するにはどうすればよいですか?

function checkKey(e) { 

     e = e || window.event; 

     if (e.keyCode == '38') { 
      snakeDirection = "up"; 
     } 
     else if (e.keyCode == '40') { 
      snakeDirection = "down"; 
     } 
     else if (e.keyCode == '37') { 
      snakeDirection = "left"; 
     } 
     else if (e.keyCode == '39') { 
      snakeDirection = "right"; 
     } 
    } 

をしかし、私はこのee = e || window.event; の意味を知らない誰かが説明していただけますか?

+0

@OusmaneDiaw私は基本的にコードをコピーしていない..しかし、私は自分のコード(ゲーム)でそれを実装しました。しかし、ありがとう。 :) –

+0

'document.onkeydown = checkKey' – dandavis

答えて

0

checkKeyは、イベントリスナーとして使用されることを意味していました。ほぼ確実に​​イベントです。これを実行してみてください、あなたは私が何を意味するかわかります、最新のブラウザで

window.addEventListener('keydown', checkKey) 

イベントリスナーは、単一のパラメータ、しばしばeeventの略)を指定されたイベントオブジェクトを取ります。

しかし、古いブラウザ(従来のInternet Explorerのバージョン)では、イベントオブジェクトがリスナーに渡されませんでした。代わりに、グローバルwindow.eventプロパティを使用してアクセスします。これらのブラウザーでコードを柔軟にするには、eが渡されないことが予想されます。そのため、e = e || window.eventという行が存在します。「eという変数が見つからない場合は、window.eventに設定して実行してください。

このイベントオブジェクトには、発生したイベントの詳細を説明するのに役立つプロパティがあります。たとえば、​​イベントオブジェクトのプロパティkeyCodeは、キーボード上でどのキーが押されたかを示します。

  • 左矢印キーコードに対応する上矢印キーコードに37
  • に対応:しかし、これらのキーコードは、使用しているif文の故に奇妙な外観、覚えやすいではない方法で、番号が付けられています38
  • 右矢印39
  • 下矢印キーコードに対応するキーコードに対応40
関連する問題