我正在構建一個MVC風格的JavaScript遊戲,並且遇到了問題。我需要檢查,如果keyState是39調用一個函數之前,但我發現了以下錯誤:未捕獲TypeError:keyHandler不是函數
Uncaught TypeError: _self.keyHandler is not a function
任何人可以幫助我嗎?問題是與下面的代碼:
if(keyState[39] = true){
_self.keyHandler();
};
全碼:
GOBLINS.Controller.prototype.input = function() {
var _self = this;
var keyState = {};
window.addEventListener('keydown', function(e){
if(e.keyCode === 39){ // Move Right
keyState[e.keyCode] = true;
};
if(e.keyCode === 37){ // Move Left
keyState[e.keyCode] = true;
};
if(e.keyCode === 38){ // Move Up
keyState[e.keyCode] = true;
};
if(e.keyCode === 40){ // Move Down
keyState[e.keyCode] = true;
};
}, true);
window.addEventListener('keyup', function(e){
if(e.keyCode == 39){
keyState[e.keyCode] = false;
};
if(e.keyCode == 37){
keyState[e.keyCode] = false;
};
if(e.keyCode == 38){
keyState[e.keyCode] = false;
};
if(e.keyCode == 40){
keyState[e.keyCode] = false;
};
}, true);
if(keyState[39] = true){
_self.keyHandler();
};
this.keyHandler = function(){
if(keyState[39] === true){
this.M.images[2].moveRight();
console.log(this.M.images[2]);
};
if(keyState[37] === true){
this.M.images[2].moveLeft();
};
if(keyState[38] === true){
this.M.images[2].moveUp();
};
if(keyState[40] === true){
this.M.images[2].moveDown();
};
};
window.requestAnimationFrame(function(){
_self.input();
});
};
@SHAZ,請不要將無意義的格式添加到帖子中,以繞過6個字符的規則。它的確如此,以至於你對帖子的改進不會太大。今後,請在這篇文章中找到一些有意義的*來改進,並建議。否則,請不要建議編輯。 –
實際上你是按照你寫的方式分配true的keyState [39] – Icepickle
這個原型是如何與你的UI連接的,換句話說,它是什麼時候啓動的?它是什麼時候被調用的? – Icepickle