我想允许用户使用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);
最佳答案
在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
关于javascript - 如何在Draw2D库中的 Canvas 上监听鼠标事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20841437/