如何正确获取光标坐标?JavaScript



如何正确获取光标在屏幕上的坐标?

我尝试使用event.clientXevent.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 - 跟踪鼠标位置

最新更新