11

mousemove イベントが機能し、キャンバス上を移動するたびに onMouseMove を呼び出します。ただし、keydown および keyup イベントは機能しません。キャンバスをクリックしていくつかのキーを押しましたが、イベントがトリガーされません。イベントが機能しない理由を知っている人はいますか? アドバイスありがとうございます!コードがどこから来たのか知りたい人がいれば、私は udacity に関する html5 コースに従っています。

InputEngineClass = Class.extend({

keyState: new Array(),

setup: function() {
    document.getElementById("gameCanvas").addEventListener('mousemove', gInputEngine.onMouseMove);
    document.getElementById("gameCanvas").addEventListener('keydown', gInputEngine.onKeyDown);
    document.getElementById("gameCanvas").addEventListener('keyup', gInputEngine.onKeyUp);
},

onMouseMove: function (event) {
    console.log("Called onMouseMove");
    var posx = event.clientX;
    var posy = event.clientY;
},

onKeyDown: function (event) {
    console.log("KEY DOWN!!!");
    keyState[event.keyID] = true;
    gInputEngine.update();
},

onKeyUp: function (event) {
    console.log("KEY UP!!!");
    keyState[event.keyID] = true;
},  

update: function() {
    KeyW = 87;

    if(gInputEngine.keyState[KeyW]) console.log("FORWARD!!!");   
}  
});

gInputEngine = new InputEngineClass();
4

1 に答える 1