在一个对象(基于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都有一个stageXstageY,这是触发事件时鼠标所在的位置。我认为您的代码来自this tutorial,它专门使用了evt

此外,MouseEvents在pressMove事件上具有rawXrawY,它们在canvas元素之外为您提供x / y。 EaselJS MouseEvents上没有clientXclientY

这是使用stageX/stageY的快速示例。
http://jsfiddle.net/lannymcnie/suva8vt3/

片段:

shape.on("pressmove", function(event) {
    shape.x = event.stageX;
    shape.y = event.stageY;
});

10-06 15:52