如何正确获取光标在屏幕上的坐标?
我尝试使用event.clientX
和event.clientY
但是它仅适用于某些情况。 如果我尝试为它制作一个特殊功能,它可以工作
stage = new createjs.Stage("myCanvas");
circle = new createjs.Shape();
circle.graphics.beginFill("red").drawCircle(0, 0, 40);
createjs.Ticker.addEventListener("tick", handleTick);
function handleTick() {
if (circle.x > stage.canvas.width) { circle.x = 0; }
stage.addChild(circle);
stage.update();
}
document.addEventListener("mousemove", function(){circle.x = event.clientX,circle.y = event.clientY});
但是,当我尝试将其包含在我的函数中时handleTick()
我得到了一连串的错误:
Uncaught TypeError: Cannot read property 'clientX' of undefined
还有其他东西可以用来吗?为什么它在我的handleTick()
函数中不起作用?
addEventListener
应该为你提供event
,如果你这样做,并添加event
作为函数参数。这样,您应该能够获取鼠标位置并将其值分配给circle
对象。
function handleTick(event) {
circle.x = event.clientX;
if (circle.x > stage.canvas.width) { circle.x = 0; }
stage.addChild(circle);
stage.update();
}
如果没有,那么您需要捕获鼠标移动并将其值存储在全局变量中,这里有一篇很棒的帖子,展示了如何做到这一点的其他方法。
- Javascript - 跟踪鼠标位置