您可以在 jsFiddle 上与此代码进行交互
在小提琴中,您可以看到我在旗杆(Kinetic.Line)上制作了一个标志(Kinetic.Rect)。当用户将鼠标移到旗帜或旗杆的任何部分上时,我希望触发一个事件。在之前的尝试中,我将事件处理程序分别附加到每个形状,只是为了了解 Kinetic.Line 不会触发事件。
在最近的一次尝试中,我将形状添加到组中,并将处理程序附加到组中,认为这可以解决问题:它没有。
有什么方法可以实现所需的行为?谢谢,记得按 F12 来查看处理程序的控制台消息。
var handler = function(e) {
console.log("Event fired.");
};
var stage = new Kinetic.Stage({
container: 'testBlock',
width: 200,
height: 200
});
var layer = new Kinetic.Layer();
var group = new Kinetic.Group();
var rect = new Kinetic.Rect({
x: 75,
y: 10,
width: 50,
height: 50,
fill: 'silver',
});
line = new Kinetic.Line({
points: [
{x: 125, y: 10},
{x: 125, y: 160},
],
stroke: 'black',
strokeWidth: 1
});
// add the shapes to the group
group.add(rect);
group.add(line);
// event handler for the group
group.on("mouseover", handler);
// add the group to the layer
layer.add(group);
// add the layer to the stage
stage.add(layer);