Javascript键侦听器按任意键

Javascript键侦听器按任意键,javascript,keyboard,listener,Javascript,Keyboard,Listener,我有一个问题,我需要找到一个解决办法D 这是我的代码: var inputEnabled = true var pressedKey = {} window.addEventListener('keydown',function(e) { pressedKey[e.keyCode || e.which] = true; }, true); window.addEventListener('keyup',function(e) { pressedKey[e.keyCode || e

我有一个问题,我需要找到一个解决办法D

这是我的代码:

var inputEnabled = true
var pressedKey = {}
window.addEventListener('keydown',function(e) {
    pressedKey[e.keyCode || e.which] = true;
}, true);
window.addEventListener('keyup',function(e) {
    pressedKey[e.keyCode || e.which] = false;
}, true);

function keyBinding() {
    if (*my problem*) {
        loadMenu()
    }

    if (inputEnabled == true) {
        setTimeout("keyBinding()", 25)
    }
}
我想要的是,当按下任何键时,我想加载一个菜单,但我不知道该如何检测按键


任何帮助都将不胜感激。

如果您的代码中有
*我的问题*
,请尝试以下操作:

if(Objects.keys(pressedKey).length>0){ // checks if the object 'pressedKey' contains atleast one key
    loadMenu()
}
但是,我建议直接在按键侦听器中检查按键:

var inputEnabled = true
var menuLoaded = false; // this will indicate if the menu is loaded already
var pressedKey = {}
window.addEventListener('keydown', function (e) {
    if(!menuLoaded){ // check if menu is not open
        loadMenu()
        menuLoaded = true
    }
    pressedKey[e.keyCode || e.which] = true;
}, true);
window.addEventListener('keyup', function (e) {
    pressedKey[e.keyCode || e.which] = false;
}, true);

如果将
keyBinding
方法放入
addEventListener
方法中,可能会出现重复的情况?在
addEventListener('keydown')
中调用loadMenu(),在
addEventListener('keydup')
中卸载你的菜单tank you all and Manuel问题是它应该加载我的js游戏的主菜单,然后再次按任意键将选择菜单屏幕上的第一个选项“New game”。。。但我会尝试通过检查按键值的长度来解决这个问题。谢谢好的,你的问题比较笼统。要检查是否按下了特定键,请在键绑定功能中使用“if(pressedKey[13])”。13是键代码,在本例中为回车键。使用这个漂亮的页面找出其他关键代码:是的,已经找到了:D现在最痛苦的是完成我第一张游戏地图的平铺地图。。。据我所知,当图层减慢游戏速度时,使用canvas渲染多个平铺贴图。。。这是我的半工作演示,如果你想尝试。。。我还需要让侦听器在接收任何输入之前等待,因为现在当我按enter键时,它跳过了“保存菜单”,并且已经呈现了我的第一张地图…看起来很酷!我喜欢这个款式。然而,你应该考虑制作一个游戏状态变量,这将表明你在主菜单,子菜单或游戏本身。(例如,game_state=0->menu,game_state=1->saveslot,game_state=2->ingame),然后将键侦听器函数划分为每个状态。稍后,这将是非常有用的,因为一旦你添加更多的东西,它会变得一团糟。此外,您还应该检查一些用于制作游戏的框架,如PixiJS或CreateJS;D