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();