【问题标题】:Capturing gamepad input key events in Wii-U web browser在 Wii-U 网络浏览器中捕获游戏手柄输入键事件
【发布时间】:2014-01-04 05:00:18
【问题描述】:

Wii-U 浏览器的Internet Browser - Extended Functionality 页面表明A 按钮和控制板应该向浏览器发送按键事件。使用下面的示例代码,我能够接收 A 按钮的事件,但方向键似乎只是想在页面上滚动并且没有触发任何事件。

如何正确接收这些事件的通知?

<script>
  document.body.onkeypress = function (event) {
    var pad = ["LEFT", "UP", "RIGHT", "DOWN"];
    var div = document.getElementById("text");
    // handle the A button
    if (event.keyCode == 13) {
      div.innerText = "A";
    }
    // handle the control pad - this doesn't seem to work
    if (event.keyCode >= 37 && event.keyCode <= 40) {
      div.innerText = pad[event.keyCode - 37];
    }
  };
</script>

我宁愿避免轮询window.wiiu.gamepad 对象,因为我只需要应该通过控制板和 A 按钮键事件提供的输入。

【问题讨论】:

    标签: javascript dom-events wii-u


    【解决方案1】:

    事实证明,A 按钮可以被任何 keydown、keyup 或 keypress 事件捕获,但八向数字键盘只能通过 keydown 和 keyup 事件捕获。您还可以取消该事件,以防止浏览器正常处理在带有preventDefault() 的页面上的链接之间移动。

    示例代码:

    document.body.onkeyup = function (event) {
        var pad = ["LEFT", "UP", "RIGHT", "DOWN"];
        var div = document.getElementById("text");
        // handle the A button
        if (event.keyCode == 13) {
            div.innerText = "A - KEYUP";
        }
        // handle the control pad
        if (event.keyCode >= 37 && event.keyCode <= 40) {
            div.innerText = pad[event.keyCode - 37] + " - KEYUP";
        }
        // prevent the Wii U browser from processing the event further
        event.preventDefault();
        return false;
    };
    
    document.body.onkeydown = function (event) {
        var pad = ["LEFT", "UP", "RIGHT", "DOWN"];
        var div = document.getElementById("text");
        // handle the A button
        if (event.keyCode == 13) {
            div.innerText = "A - KEYDOWN";
        }
        // handle the control pad
        if (event.keyCode >= 37 && event.keyCode <= 40) {
            div.innerText = pad[event.keyCode - 37] + " - KEYDOWN";
        }
        // prevent the Wii U browser from processing the event further
        event.preventDefault();
        return false;
    };
    
    document.body.onkeypress = function (event) {
        var div = document.getElementById("text");
        // handle the A button
        if (event.keyCode == 13) {
            div.innerText = "A";
        }
    };
    

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2012-12-23
      相关资源
      最近更新 更多