gpt4 book ai didi

javascript - 使用 JavaScript 同时按下六个以上的键

转载 作者:行者123 更新时间:2023-12-03 02:58:28 26 4
gpt4 key购买 nike

在开发一个简单的游戏时,我注意到当我同时按下键盘上的六个键时,捕获 Web 应用程序文档上的 keydown 和 keyup 事件开始变得不可预测。使用以下代码片段,列出的键在按下六个键后停止显示,有时按下更少的键。

<!DOCTYPE html>
<html>
<head>
<title>Keyboard test</title>
</head>
<body>
<div id="target"></div>

<script>

var target = document.getElementById('target');
var keyInventory = {};
var REFRESH_RATE = 1000 / 60;

document.addEventListener('keyup', function(e) {
keyInventory['Key code ' + e.keyCode] = false;
});

document.addEventListener('keydown', function(e) {
keyInventory['Key code ' + e.keyCode] = true;
});

setInterval(function() {
target.innerHTML = JSON.stringify(keyInventory).replace(/,/g, '<br />');
}, REFRESH_RATE);

</script>
</body>
</html>

浏览器是否阻止了某些组合,或者浏览器是否使用“keyup”和“keydown”事件在六处画线?是否存在一些需要防止的默认行为?所有浏览器都一样吗?有没有办法允许注册六个以上的任意组合键?

最佳答案

这很可能是您的键盘问题。 IIRC、USB 只能支持 6 个同时按键。 (不是 USB 键盘,我的意思是字面上 USB 协议(protocol))。由于此限制,许多消费类键盘也仅支持 6 个同时按键。

如果您想要更多(又名 N-KRO),您将需要购买支持该功能的键盘,并且很可能使用 PS/2。因为,除了对 USB 协议(protocol)的奇怪修改之外,PS/2 是唯一支持无限按键的东西。

所以实际上你的内存可能是正确的。由于大多数键盘过去都是 PS/2,因此它们(理论上)都可以支持 N-KRO。

关于javascript - 使用 JavaScript 同时按下六个以上的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47517394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com