2015-07-06 3 views
1

Внутри объекта (создан на основе this tutorial), у меня есть следующий код. В этом коде строки:EaselJS - Как доступно движение мыши?

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

'' event.clientX' и событие, clientY' –

+0

Это не работает, так что, может быть, есть что-то еще не так в коде? – Dirk

ответ

2

Ваш пример кода использует evt.stageX вместо event.stageX. Все MouseEvents будут иметь stageX и stageY, что является позицией мыши, когда она запускает событие. Я думаю, что ваш код исходил от this tutorial, который использует исключительно evt.

Кроме того, MouseEvents имеют rawX и rawY события pressMove, которые дают x/y вне элемента холста. Нет clientX или clientY на EaselJS MouseEvents.

Вот пример с использованием stageX/stageY. http://jsfiddle.net/lannymcnie/suva8vt3/

Отрывок:

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