在一个对象(基于this tutorial创建)中,我具有以下代码。在此代码中,以下行:
event.target.x = evt.stageX;
event.target.y = evt.stageY;
错了。他们应该如何访问鼠标移动?:
(function() {
....
var p = createjs.extend(Card, createjs.Container);
p.setup = function() {
this.on("pressmove", this.handlePressMove);
....
p.handlePressMove = function (event) {
event.target.x = evt.stageX; //"Event" is wrong. So is "evt"
event.target.y = evt.stageY;
stage.setChildIndex(this, stage.getNumChildren()-1);
stage.update();
}
}
}());
最佳答案
您的代码示例使用evt.stageX
而不是event.stageX
。所有MouseEvents都有一个stageX
和stageY
,这是触发事件时鼠标所在的位置。我认为您的代码来自this tutorial,它专门使用了evt
。
此外,MouseEvents在pressMove事件上具有rawX
和rawY
,它们在canvas元素之外为您提供x / y。 EaselJS MouseEvents上没有clientX
或clientY
。
这是使用stageX/stageY
的快速示例。
http://jsfiddle.net/lannymcnie/suva8vt3/
片段:
shape.on("pressmove", function(event) {
shape.x = event.stageX;
shape.y = event.stageY;
});