Как прослушивать события мыши на холсте в библиотеке Draw2D?

Я хочу разрешить пользователю рисовать прямоугольник на холсте с помощью библиотеки Draw2D. Расположение холста при нажатой мыши будет верхним левым, а местоположение холста при наведении мыши должно стать нижним правым. Однако я не могу поймать события мыши вверх и вниз на холсте.

Вот код, который я пытаюсь выполнить, но результата нет:

var canvas = new draw2d.Canvas("canvas-div");
var policy = new draw2d.policy.canvas.CanvasPolicy();
policy.onClick = function(canvas, mouseX, mouseY) {
    console.log("Mouse click:" + mouseX + "," + mouseY);
}
canvas.installEditPolicy(policy); 

person user3146641    schedule 30.12.2013    source источник


Ответы (1)


В Draw2D-js вам всегда нужно расширять классы, если вы хотите сделать что-то новое. (вы неправильно переопределяете метод)

в вашем примере вы можете создать это:

  var MyPolicy = draw2d.policy.canvas.CanvasPolicy.extend({
  NAME: 'MyPolicy',
  init: function() {
    this._super();
    alert("done");
  },
  onClick: function(the, mouseX, mouseY, shiftKey, ctrlKey) {
    this._super(the, mouseX, mouseY, shiftKey, ctrlKey);
    alert("MyPolicy click:" + mouseX + "," + mouseY);
  }
 });

и чем использовать его следующим образом:

var policy = new MyPolicy();
canvas.installEditPolicy(policy); 

другой метод - использовать JQuery напрямую:

$('#draw2Did').click(function(ev) { 
      alert("Mouse click:" + ev.clientX + "," +ev.clientY); }
);

Ссылка:

http://draw2d.org/draw2d_touch/jsdoc_5/#!/api/draw2d.policy.canvas.CanvasPolicy

person B. Youcef    schedule 11.09.2014