问题描述
我正在尝试检测 Kinetic.Group
上的鼠标事件(当前是mousedown),其中包含由 Kinetic.Line $组成的网格c $ c>
I'm trying to detect mouse events (currently mousedown) on a Kinetic.Group
containing a grid made of Kinetic.Line's
我正在听Layer上的mousedown事件。当碰到一条线时,没有事件被触发。
I'm listening to the mousedown event on the Layer. When it happens that i hit a line, no event is fired.
var grid = new Kinetic.Group({
x: 0,
y: 0,
width: this.group.width(),
height: this.group.height()
});
grid.on("mousedown", function(){
alert("At least this one should fire!");
});
var gridX = this.gridWidth, gridY = this.gridHeight;
this.group.add(grid);
while(gridY < this.rect.height()){
var line = new Kinetic.Line({
points : [0,gridY, this.rect.width(), gridY],
stroke: "grey",
strokeWidth: 1
});
grid.add(line);
gridY += this.gridHeight;
}
while(gridX < this.rect.width()){
var line = new Kinetic.Line({
points : [gridX,0, gridX, this.rect.height()],
stroke: "grey",
strokeWidth: 1
});
grid.add(line);
gridX += this.gridWidth;
}
我发现这个帖子:
提到的答案是在形状上使用saveData()。这似乎是旧的,因为 Kinetic.Shape
中不存在此方法。
The answer mentioned there is using "saveData()" on the shape. This seems to be old because this method does not exist in Kinetic.Shape
.
以上帖子的示例指的是图像。它使用 cache()
方法创建一个命中图或其他东西。我尝试过我的线路,但这也行不通。
The example where the above post is pointing to is for images. And it uses the cache()
method to create a hit graph or something. I tried that for my lines but this won't work either.
如何在Kinetic.Line上检测鼠标事件?
How can i simply detect mouse events on a Kinetic.Line?
推荐答案
万一你还在寻找这个@Chris的答案,如果其他人找到了你的帖子,我相信你和我都是一样的问题。 @Sjiep如此慷慨地在帖子中解决了我的问题。
Just in case you are still looking for an answer to this @Chris, and in case others find your thread, I believe you and I were suffering from the same issue. @Sjiep so graciously provided a fix for my problem under this thread.
原来这确实是一个错误!
Turns out it was indeed a bug!
这篇关于在Kinetic.Line上检测鼠标事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!