【问题标题】:Javascript bug? No space bar event when pressing up and left arrow keysJavascript错误?按向上和向左箭头键时没有空格键事件
【发布时间】:2012-02-01 09:13:54
【问题描述】:

我正在开发一个小游戏,我尝试接收来自上、下、左、右和空格键的键输入。

在 keyDown 上,我将一些布尔值设置为 true,而在 keyDown 上再次设置为 false。在主循环中,我检查了这些布尔值,因此角色可以在 8 个方向中的 1 个方向上移动并同时射击。

一切正常:North-East + Space、South-East + Space、South-West + Space 但西北+空间不起作用。空格键的事件不会被触发。

 function onKeyDown(evt){

            switch(evt.keyCode){

                case up:
                pressedUp=true;
                break;

                case right:
                pressedRight = true;
                break;

                case down:
                pressedDown = true;
                break;

                case left:
                pressedLeft = true;
                break;

                case space:
                spacePressed=true;
                break;
            }

            updateCamera();
        }

        function onKeyUp(evt){

           switch(evt.keyCode){
                 case up:
                pressedUp=false;
                break;

                case right:
                pressedRight = false;
                break;

                case down:
                pressedDown = false;
                break;

                case left:
                pressedLeft = false;
                break;

                case space:
                spacePressed = false;
                break;
            }
        }

【问题讨论】:

  • 空间变量的值是多少?如果您在 event.keyCode 上测试,则根据此页面 asquare.net/javascript/tests/KeyCode.html 空间应为 0
  • 它是 32,我认为 keyCode 在任何情况下都不会改变。它适用于每个箭头键组合,除了左上角
  • 有这方面的消息吗?我偶然发现了同样的问题......
  • 我的假设是这与操作系统或硬件有关。所以我想不容易解决
  • 我也有同样的问题...

标签: javascript keyboard keydown keyevent


【解决方案1】:

我做了一些测试,在所有浏览器以及 Flash 和 AIR 应用程序中都有相同的行为,所以对我来说这很可能是由我的键盘(型号:Cherry JK-0100DE)引起的。

我的解决方法是使用另一个键而不是空格 - 可能与 X 或 Y 一起使用。

【讨论】:

    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 2010-09-21
    • 2014-08-10
    • 1970-01-01
    • 2011-06-21
    • 2012-05-03
    相关资源
    最近更新 更多