我正在尝试使用此函数在 HTML5 画布上获取鼠标的位置:
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top
};
}
该函数通过附加到 window DOM 对象的事件侦听器(侦听 mousemove 事件)调用。
我在一个对象中将 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
先感谢您。
在我的代码中有一些地方我忘记将 mousePos 变量称为 engine.mousePos,因为我忘记了它们被放置在引擎对象中。
例子:
if(typeof mousePos.x !== undefined){ ... }
应该
if(typeof engine.mousePos.x !== undefined){ ... }
感谢大家的帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句