我使用HTML5 Canvas Element,Javascript for facebook制作了游戏。您可以在此处访问http://apps.facebook.com/snaqe_game。我面临的问题是,当我按下箭头键,用于移动使用Javascript onkeydown 事件实现的蛇时,游戏正常工作但滚动条上下移动。我尝试制作一个文本框(#activ)并将焦点设置到它。它有效,但是当我试图让它变得不可见时,它失败了。
document.onkeydown = function(event) {
document.getElementById('activ').focus()
if (!allowPressKeys) {
return null;
}
var keyCode;
if(event == null) {
keyCode = window.event.keyCode;
} else {
keyCode = event.keyCode;
}
switch(keyCode) {
case 37:
if (direction != "right") {
moveLeft();
}
break;
case 38:
if (direction != "down") {
moveUp();
}
break;
case 39:
if (direction != "left") {
moveRight();
}
break;
case 40:
if (direction != "up") {
moveDown();
}
break;
default:
break;
}
}
答案 0 :(得分:1)
在document.onkeydown
功能结束时(在snake.js
中的第197行之后),添加
if (event.preventDefault) { event.preventDefault(); }
if (event.stopPropagation) { event.stopPropagation(); }
return false;
这可以防止浏览器响应事件,而不是执行您的功能。
您可能还需要使用这三行替换第161行的return null;
。