Я пытаюсь обнаружить события мыши (в настоящее время MouseDown) на Kinetic.Group
содержащей сетку, изготовленную из Kinetic.Line's
Обнаружение событий мыши на Kinetic.Line
Я слушаю события MouseDown на уровне. Когда случается, что я ударяю строку, никакое событие не запускается.
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;
}
Я нашел этот пост:
Ответ упоминается там с помощью "сейв()" на форме. Это кажется старым, потому что этот метод не существует в Kinetic.Shape
.
Пример, на который указывает вышеуказанное сообщение, предназначен для изображений. И он использует метод cache()
, чтобы создать хит-граф или что-то в этом роде. Я попробовал это для своих строк, но это тоже не сработает.
Как я могу просто обнаружить события мыши на Kinetic.Line?
Вы должны иметь возможность привязать событие click на слое, подобном этому 'clickLayer.on ('click', function (evt) {// Do something});' – RobinvdA
Я добавил фрагмент кода, чтобы он был более понятным что я делаю – Chris
Возможно, вы могли бы поместить его в jsFiddle, так что нам есть с чем поиграть – RobinvdA