Я сейчас пытаюсь зарегистрировать прослушиватель событий мыши на элементе canvas.
Когда инициализируется мой объект приложения JS, он связывает события мыши с пользовательским классом "MouseController":
this.canvas.addEventListener('mousedown',this.input0.btnDown, false);
«this» - это инициализируемый объект приложения, а canvas - ссылка на базовый 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
}
Asпри щелчке мыши консоль регистрирует «результат выражения this.updateCoordinates 'не является функцией».Предыдущее обсуждение научило меня тому, что ссылка «это» теряется, и в этом случае она привязывается к элементу Canvas.
Так что я ищу способ вызвать «btnDown», как если бы яв Java это означает, что он выполняется как часть объекта и, следовательно, имеет доступ к переменным этого объекта.
Единственное решение, которое я нашел, было синглтоном ... Ничего хорошего :( Я уверен, что естьЧистый раствор ... Пожалуйста, помогите: -)
Спасибо!J.