Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在画布游戏中使用javascript onkeydown事件后阻止facebook滚动条移动?_Javascript_Facebook_Html_Canvas - Fatal编程技术网

如何在画布游戏中使用javascript onkeydown事件后阻止facebook滚动条移动?

如何在画布游戏中使用javascript onkeydown事件后阻止facebook滚动条移动?,javascript,facebook,html,canvas,Javascript,Facebook,Html,Canvas,我用HTML5画布元素,facebook的Javascript制作了一个游戏。你可以在这里参观。我面临的问题是,当我按下向下箭头键(用于移动使用Javascript onkeydown事件实现的蛇)时,游戏正常工作,但滚动条会上下移动。我试着制作一个文本框(activ)并设置焦点。它起作用了,但当我试图让它隐形时,它失败了 document.onkeydown = function(event) { document.getElementById('activ').focus()

我用HTML5画布元素,facebook的Javascript制作了一个游戏。你可以在这里参观。我面临的问题是,当我按下向下箭头键(用于移动使用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;
    }
}

document.onkeydown
函数的末尾(在
snake.js
的第197行之后),添加

这将阻止浏览器响应事件,而不仅仅是执行您的功能

您可能还需要替换
返回null在第161行中,使用这三行



document.onkeydown
函数的末尾(在
snake.js
的第197行之后),添加

这将阻止浏览器响应事件,而不仅仅是执行您的功能

您可能还需要替换
返回null在第161行中,使用这三行


if (event.preventDefault) { event.preventDefault(); }
if (event.stopPropagation) { event.stopPropagation(); }
return false;