左箭头键打开键码37和39

时间:2014-05-24 19:01:52

标签: keycode arrow-keys

我正在尝试编写一个简单的乒乓球程序,该程序使用箭头键来导航玩家的球拍。我需要检查瞬时密钥代码,所以我创建了一个单独的js文件来解析onkeydown和onkeyup事件,作为我需要的密钥代码的布尔值。但是,当我键入左箭头时,它会将键码37和39一起打开。这对于右箭头不起作用,但是在将空格键混淆为箭头键之前我已经使用过它。代码基本上如下所示:

    var KeyPressed=
    {
        Left:false,
        Right:false,
        ...
    };

    window.onkeydown =function(e) {
        e = e || window.event;
        var getKey = e.keyCode ? e.keyCode:e.charCode;
        switch (getKey) {
            case  37: KeyPressed.Left=true;
            case  39: KeyPressed.Right=true;
            ...
        }
    };

    window.onkeyup = function(e){
        e = e || window.event;
        var getKey = e.keyCode ? e.keyCode:e.charCode;
        switch (getKey){
            case  37: KeyPressed.Left=false;
            case  39: KeyPressed.Right=false;
            ...
        }
    };

1 个答案:

答案 0 :(得分:1)

看起来你每次按下都没有重置左/右布尔状态。因此,无论如何,您都应该onkeyup将两者都设置为false。