1

ユーザーが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); 
4

1 に答える 1

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

于 2014-09-11T08:33:38.317 に答える