在对象内部(基于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();
}
}
}());
答案 0 :(得分:2)
您的代码示例使用evt.stageX
而不是event.stageX
。所有MouseEvents都有stageX
和stageY
,这是鼠标在触发事件时所处的位置。我认为您的代码来自this tutorial,它使用evt
exlusively。
此外,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;
});