gpt4 book ai didi

javascript - 当同时按下两个键时观察 JavaScript 中的 keydown 事件

转载 作者:行者123 更新时间:2023-11-30 06:05:53 24 4
gpt4 key购买 nike

我正在使用 JavaScript 开发一款浏览器游戏,玩家可以在其中向所有四个方向移动化身。

为了记录同时按下的按键,我观察了 keydownkeyup 事件并跟踪按下和释放的键。这样,如果同时按下光标向上光标向右,我就可以沿对 Angular 线方向移动头像。

StackOverflow 上的这个回复是一样的原理 In Javascript, how do I tell if a user is pressing two keys at the same time?通过这个演示 http://jsbin.com/iloxi .

但是该解决方案存在一个缺陷,该缺陷也可以在演示中重现。例如按向下光标,然后也开始按向右光标。该框现在移动到右下方。现在释放向右光标,同时仍然按下向下光标。盒子停止移动。应该发生的是盒子一直向下移动。

问题在于,一旦按下 向右光标,JavaScript 就会停止发送 cursor down keydown 事件。一旦释放向右光标,就无法知道向下光标是否仍在按下。

这个问题有解决办法吗?

更新:演示的问题是框在 keydownkeyup 事件监听器中移动。但是,一旦释放第二个键,就不会再为第一个键触发 keydown 事件。我想知道是否有解决方案,或者这是否是标准的 JavaScript 行为?

要修复演示代码,您必须在超时迭代 (window.setTimeout()) 中调用 move() 函数。

最佳答案

也许我误会了你,但你不应该等待光标按下时的 keyup 事件吗?即,按下光标直到你得到一个 keyup - 你不应该依赖于重复发送的 keydown 事件。

关于javascript - 当同时按下两个键时观察 JavaScript 中的 keydown 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794451/

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