onKeyDown 事件未触发
onKeyDown event not triggered
我正在 Html5 canvas 中使用 javascript 制作一个小型浏览器游戏。
我正在使用 onKeyUp 和 onKeyDown 事件来获取键盘输入:
function onKeyDown(evt) {
if (evt.keyCode == 32) {
spaceKey = true;
}
if (evt.keyCode == 38) {
arrowUpKey = true;
}
if (evt.keyCode == 37) {
arrowLeftKey = true;
}
if (evt.keyCode == 39) {
arrowRightKey = true;
}
}
function onKeyUp(evt) {
if (evt.keyCode == 32) {
spaceKey = false;
}
if (evt.keyCode == 38) {
arrowUpKey = false;
}
if (evt.keyCode == 37) {
arrowLeftKey = false;
}
if (evt.keyCode == 39) {
arrowRightKey = false;
}
}
我需要方向键(左、右、上)和空格键。输入通常会被检测到,但有一种特定情况不起作用:如果按下向左和向上的箭头(玩家同时跳跃和向左移动),那么出于某种奇怪的原因,任何空格键输入都不会被检测到。
在我的代码中,除了显示的事件之外,我从未为变量分配任何新值 'spaceKey'。所以我假设还有另一个原因导致这种特定的键组合不起作用,或者可能只有 better/safer 方式来处理用户输入?
只是为了消除键盘问题,请查看此 link 以了解为什么键盘不记录某些多键按下的原因
http://www.microsoft.com/appliedsciences/antighostingexplained.mspx
您也可以使用演示来测试键盘
我正在 Html5 canvas 中使用 javascript 制作一个小型浏览器游戏。 我正在使用 onKeyUp 和 onKeyDown 事件来获取键盘输入:
function onKeyDown(evt) {
if (evt.keyCode == 32) {
spaceKey = true;
}
if (evt.keyCode == 38) {
arrowUpKey = true;
}
if (evt.keyCode == 37) {
arrowLeftKey = true;
}
if (evt.keyCode == 39) {
arrowRightKey = true;
}
}
function onKeyUp(evt) {
if (evt.keyCode == 32) {
spaceKey = false;
}
if (evt.keyCode == 38) {
arrowUpKey = false;
}
if (evt.keyCode == 37) {
arrowLeftKey = false;
}
if (evt.keyCode == 39) {
arrowRightKey = false;
}
}
我需要方向键(左、右、上)和空格键。输入通常会被检测到,但有一种特定情况不起作用:如果按下向左和向上的箭头(玩家同时跳跃和向左移动),那么出于某种奇怪的原因,任何空格键输入都不会被检测到。
在我的代码中,除了显示的事件之外,我从未为变量分配任何新值 'spaceKey'。所以我假设还有另一个原因导致这种特定的键组合不起作用,或者可能只有 better/safer 方式来处理用户输入?
只是为了消除键盘问题,请查看此 link 以了解为什么键盘不记录某些多键按下的原因
http://www.microsoft.com/appliedsciences/antighostingexplained.mspx
您也可以使用演示来测试键盘