Javascript 如何使用A帧中的“键盘控制”组件按住多个键

Javascript 如何使用A帧中的“键盘控制”组件按住多个键,javascript,aframe,Javascript,Aframe,我在a帧中使用,我注意到我无法同时按住多个关键点 请参见下面使用I和J键的简化示例 使用以下脚本 <script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script> <script src="https://cdn.rawgit.com/donmccurdy/aframe-keyboard-controls/a9c513fc/dist/aframe-keyboard-controls.js

我在a帧中使用,我注意到我无法同时按住多个关键点

请参见下面使用
I
J
键的简化示例

使用以下脚本

 <script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
 <script src="https://cdn.rawgit.com/donmccurdy/aframe-keyboard-controls/a9c513fc/dist/aframe-keyboard-controls.js"></script>
然后附加到场景中

<a-scene keytest> 
</a-scene>
,打开控制台并尝试同时按住
I
J

问题是,例如,在按住
I
的同时,如果我同时按住
J
,它将停止听到
I
键,反之亦然。这不可能吗?还是我做错了什么?我知道这在正常的按键事件下是可能的

如果这有帮助的话,我将制作一辆汽车,并使用keybaord控制装置为其供电。实际上,向前/向后按可加速汽车,向左/向右将使汽车转向,但事实上,只要我开始向任一方向转向,加速器就会停止,因为它不再听到向前键的声音


非常感谢您的建议。

这不是一个bug,而是您对按键事件的一点误解。。。keydown事件行为可以最好地描述为在字处理器或记事本中键入时所期望看到的情况。如果你按住I键,你会看到一个I输入,然后在一个小延迟后,快速重复I。然后在这期间再按住J,将停止输入Is,键入aj,然后在另一个小延迟后,快速重复J


相反,您应该做的是,一旦触发一个keydown事件,将一个内部变量设置为true,或者将其称为throttle、steeringLeft等。。。然后,当为该密钥触发keyup事件时,将其设置回false。根据这些变量的真/假状态进行汽车操纵。

在车身上使用keydown事件,然后检查两者是否都处于按下状态。嗨,乌拉斯,谢谢你的评论。在我第一次发布后,我为我的问题添加了更多的上下文,因此根据下面的答案,我实际上不需要在这种情况下同时按下键盘,但我会记录下你对另一个项目的建议。谢谢。嗨,比弗斯特,非常感谢你的解释,这很有道理。也谢谢你的建议,这是个好主意,我会的。非常感谢。
<a-scene keytest> 
</a-scene>