我正在尝试弄乱HTML5,我拥有的其中之一是getMousePos函数:
function getMousePos(canvas, evt) {
var rect = canvas.getBoundingClientRect();
return {
x: evt.clientX - rect.left,
y: evt.clientY - rect.top
};
}
相当标准。工作正常。每当画布上发生“ mousemove”事件时,就会调用它。
然后我有一个对象,在其中声明“ mousePos”基值(0,0)
var engine = {
canvas: document.getElementById('main'),
mousePos: {x:0,y:0},
...
}
每当我将鼠标移出画布并重新加载页面时,控制台都会尖叫
Uncaught ReferenceError: mousePos is not defined
在对该变量执行任何操作之前,它定义为0,0。为什么说它显然不是未定义的呢?
我的其余代码(包括HTML):https://pastebin.com/03FZ2Q3L
谢谢。
答案 0 :(得分:0)
在我的代码中有些地方我忘记将mousePos变量称为engine.mousePos,因为我忘记了它们被放置在engine对象中。
示例:
if(typeof mousePos.x !== undefined){ ... }
应该是
if(typeof engine.mousePos.x !== undefined){ ... }
感谢大家的帮助