【问题标题】:I am having problems with 3+ keys pressed我在按下 3 个以上的键时遇到问题
【发布时间】:2012-01-17 21:55:05
【问题描述】:

我的 JS 小游戏无法正常运行。它只记录按下的前两个键。

你可以在这个jsFiddle看到问题

我的代码真的很大,不知道该放什么,但我觉得问题出在这里:

document.onkeypress=function(e){
    var charCode;

    e=e||window.event;

    charCode=typeof e.which=="number"?e.which:e.keyCode;

    if((charCode>=102&&charCode<=104)||charCode==106){
        getKey(charCode==106?4:charCode-101);//F-G-H-J=1-2-3-4
    }
    return false;
};

【问题讨论】:

  • 大多数键盘都限制了它们可以同时处理的键数。像 shift 和 ctrl 这样的键通常可以在任何同时限制的基础上处理
  • @FrederickCheung 如果您将其发布为答案,我肯定会接受它

标签: javascript keypress onkeypress


【解决方案1】:

大多数键盘都限制了它们可以同时处理多少个键。像 shift 和 ctrl 这样的键通常可以在任何同时限制的基础上处理。

【讨论】:

    【解决方案2】:

    尝试使用onkeydown 来跟踪何时按下某个键,并使用onkeyup 来跟踪何时释放某个键。您可以跟踪当前在数组或其他内容中按下了哪些。

    编辑:没关系。你的游戏对我来说运行良好,最多可以按四次按键。您的评论者正在谈论某事;我认为您的键盘无法处理它。

    【讨论】:

    • 但是当任意两个键被按下时,第三个甚至都没有被记录
    • 你试过onkeydown和onkeypress吗?
    • 糟糕。我错过了你的onkeydown。我会检查一下,看看会发生什么。编辑:我不知道如何使用onkeydown,我尝试使用它,但它不起作用,它阻止我使用 F5 刷新
    • 编辑了我的答案。也可能是您的浏览器;我用的是FF9。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 2019-08-23
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多