0
我現在嘗試註冊一個canvas元素上的鼠標事件偵聽器。鼠標事件偵聽器和「本」
由於我的JS應用對象初始化時,它結合鼠標事件自定義「MouseController」類:
this.canvas.addEventListener('mousedown',this.input0.btnDown, false);
「這個」正在初始化應用對象和帆布是基本的HTML5畫布的引用上我的頁面。
控制器是一個簡單的類,如:
function MouseController(eventHandler) {
this.handler = eventHandler;
this.contact = false;
this.coordX = 0;
this.coordY = 0;
}
MouseController.prototype.btnDown = function(event) {
// Faulty line ???
this.updateCoordinates(event);
}
MouseController.prototype.updateHIDCoordinates = function (event) {
// code to set coordX and coordY of the controller instance
// Again, I can't access the object from here as "this" refers to the Canvas
}
當鼠標被點擊,控制檯日誌「的表達this.updateCoordinates'的結果是不是一個函數」。之前的討論教會了我有關引用「this」丟失的問題,最終導致綁定到本例中的Canvas項目。
所以我在尋找一種方式叫「btnDown」像我這一點在Java,這意味着它作爲執行對象的一部分,因此可以訪問該對象的變量。
我發現了一個單身......沒有好的:(我敢肯定有一個乾淨的解決方案唯一的解決辦法... 請:-)
謝謝幫忙! J.
尼斯,它幫助! – Jem
現在奇怪的是,當我的btnDown被調用時,我把它稱爲「this.handler.click()」。 「點擊()」的應用對象的方法只是簡單地調用: 的console.log(「點擊」 + this.input0.coordX); input0被設置爲一個成員變量。從控制器回來,「handler.input0」被設置爲空......任何想法爲什麼? 感謝 – Jem
嗯,現在參考INPUT 0再次工程.. .wierd ......我肯定打破了沒有注意到/固定的東西。謝謝你的幫助! – Jem