由于 Chrome 停止正确渲染,从 4.0.5 升级到 4.4.1。
但是,在 4.0.5 版本中,可以在 Kinetic.Shape 对象中绘制一条线并检测其上的鼠标事件。这似乎不再是这样了。即使使用推荐的 Canvas.fillStroke(this) 调用。
这是一些代码:
var myshape = new Kinetic.Shape({
drawFunc: function(canvas) {
var context = canvas.getContext();
context.beginPath();
context.setLineWidth(20);
context.moveTo(100, 10);
context.lineTo(100, 60);
context.closePath();
context.stroke(); //this does
//canvas.fillStroke(this); //this doesn't bring the line on the screen
//context.fill(); //this doesn't make the event work either
context.beginPath();
context.setLineWidth(10);
context.moveTo(100, 60);
context.lineTo(100, 120);
context.closePath();
//canvas.fillStroke(this); //this doesn't bring the line on the screen
context.stroke(); //this does
canvas.fillStroke(this);
},
draggable: true
});
myshape.on('mousedown', function(event){
alert('mousedown');
});
这个小提琴中的一个例子:http: //jsfiddle.net/GDQ6G/(似乎只在 Chrome 中呈现该行。不在 firefox 中)
此测试页面上的另一个示例:http ://www.planetinaction.com/linetest.htm
很明显我做错了,因为这段代码没有在 Firefox 中呈现。有人可以告诉我这是在链接的小提琴中完成的吗?形状的文档显示了如何绘制单个项目。我需要绘制多个项目来形成我的自定义形状,如这个简化的两行示例所示。