Я пытаюсь получить положение мыши на холсте HTML5 с помощью этой функции:
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top
};
}
Функция вызывается через прослушиватель событий (прослушивание события mousemove), прикрепленный к объекту DOM окна.
Я объявил начальные значения mousePos как 0,0 в объекте следующим образом:
var engine = {
canvas: document.getElementById('main'),
mousePos: {x:0,y:0},
...
}
Всякий раз, когда я перемещаю мышь за пределы холста и перезагружаю страницу, консоль сообщает:
Uncaught ReferenceError: mousePos is not defined
Поскольку событие window.mousemove еще не сработало, переменная не определена. Но мне кажется, что прежде чем я впервые использую переменную, она определена правильно. Несмотря на это, почему я до сих пор получаю эту ошибку?
Остальная часть моего кода (включая HTML): https://pastebin.com/03FZ2Q3L
Заранее спасибо.