Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 按住4个键后,多个键输入失败_Javascript_Input_Keyboard Events - Fatal编程技术网

Javascript 按住4个键后,多个键输入失败

Javascript 按住4个键后,多个键输入失败,javascript,input,keyboard-events,Javascript,Input,Keyboard Events,对编程来说有点陌生,制作了一个测试演示来了解关键输入是如何工作的。演示看起来不错,直到我开始注意到一些密钥没有注册。我只是按住q->w->e->r->t,除非我松开其他键,否则t不会显示在输出中。这是我的代码,非常基本 var p1=document.getElementById(“p1”); var键=[]; 文件.添加的文件列表器(“键控”,功能(e){ 键[e.keyCode]=真; 更新(); }); 文件.附录列表(“键控”,功能(e){ 密钥[e.keyCode]=假; 更新();

对编程来说有点陌生,制作了一个测试演示来了解关键输入是如何工作的。演示看起来不错,直到我开始注意到一些密钥没有注册。我只是按住q->w->e->r->t,除非我松开其他键,否则t不会显示在输出中。这是我的代码,非常基本

var p1=document.getElementById(“p1”);
var键=[];
文件.添加的文件列表器(“键控”,功能(e){
键[e.keyCode]=真;
更新();
});
文件.附录列表(“键控”,功能(e){
密钥[e.keyCode]=假;
更新();
});
函数更新(){
控制台日志(键);
p1.innerText=“”;
for(i=0;i

测试这是特定于硬件的,取决于您的操作系统、键盘以及相关软件(浏览器)施加的限制。例如,在我的系统上,您的代码正确地触发了q+w+e+r+t+y,但没有触发第七个键。看来你的最大值是4,而我的最大值是6

要回答您的具体问题:

你知道为什么第五个输入有时不映射吗

简言之,可能是因为键盘本身,也可能是计算机或软件中的其他硬件忽略了其他按键

有没有办法解决这个问题


这并不可靠,因为它可能适用于某些用户,但您不能在web上部署这样的代码并期望它适用于所有用户。一些较旧的硬件可能一次只支持两个键。

一般来说,我对编程方面的键盘输入不太熟悉,但我认为通常一次按下超过4个键在任何程序中都不起作用,这让我猜测这是硬件“问题”(如果你这么说的话,它可能更像一个功能)。请记住,大多数键盘都有一个并发键限制,所以可能不是你的代码导致了这个问题。如果我使用特定的键,我可以增加到七个,但这似乎是随机的。组合qweryipn所有映射都正确,但t、u、o、v、c和x等字母拒绝加入该组。请注意,当您按住键盘按钮时,它将每秒触发很多次
keydown
事件,直到您将其释放。我对其工作原理进行了详细说明,你可以用它来测试不同的配置。我也在用codepen。重申一下我上面的评论,如果我使用特定的键,我可以增加到7,但这似乎是随机的。组合qweryipn所有映射都正确,但t、u、o、v、c和x等字母拒绝加入该组。@ARCS2016这真的很有趣。尽管如此,您的硬件仍会受到限制,操作系统或其他软件可能会进一步限制(即,某些键可能会被忽略)。出于好奇,您需要这种高并发性有什么原因吗?还是你只是在测试什么是有效的?我想,埃德·科特雷尔是对的。事件使用具有键盘驱动功能的桌面应用程序,某些键可同时按下(最多7个),而某些键不可同时按下。您看过允许两个人在一个键盘上控制两个字符的浏览器游戏吗?(比如消防队员和水上女孩、矩阵子弹时间和坦克故障)我正在尝试使用该功能制作一个游戏,我不能让钥匙不激活,因为这个游戏将是PVP。