字母和箭头键码之间有什么区别?

时间:2013-09-20 00:39:27

标签: javascript javascript-events keycode

var keyPressed = function() {
    key[keyCode] = true;
};
var keyReleased = function() {
    key[keyCode] = false;
};

为什么我可以同时按下多个箭头键码,而且不能用字母做?我正在移动一个玩家,使用WASD代替箭头,我不能同时按下“W”和“A”(对角线),因为当我按“W”然后按“A”,“A”打破“W”。它只能向上或向下或向左或向右......但是使用相同的代码,用箭头,我可以将它们组合在一起并转向对角线。

我得出结论,箭头和输入/字母 - 键码之间存在一些差异。有什么不同?如何在同一时间按两个字母?

我非常感谢你!

1 个答案:

答案 0 :(得分:0)

您可能希望使用onkeypress,例如:

var doc = document;
function E(e){
  return doc.getElementById(e);
}
E('yourElementId').onkeypress = function(ev){
  var e = ev || event;
  var kc = e.keycode;
  if(kc == 87 || kc == 38){
    // W or up
  }
  if(kc == 68 || kc == 39){
    // D or right
  }
  if(kc == 83 || kc == 40){
    // S or down
  }
  if(kc == 65 || kc == 37){
    // A or left
  }
}