2013-09-24 2 views
0

Контейнер для холста принимает входные данные (например, мышь [вверх, вверх, вниз] и т. Д.), Как Kinetic JS идентифицирует, что он нажал на определенный узел в сцене и как он поддерживает информацию о стеке, означает, какой элемент будет принимать событие, если несколько элементов пересекаетКак работает обработка событий в KinecticJs

ответ

0

Вы можете определить, какой узел был щелкнули, выполнив следующие действия:

layer.on('click', function(e) { 
    var node = e.targetNode; 
    alert(node.getName()); 
}); 

И ответить на ваш другой вопрос, элемент, который находится на вершине будет обнаруживать события мыши , когда пересекаются несколько элементов.

Вы можете использовать функцию moveToTop() для перемещения элементов в верхней части, чтобы быть в состоянии обнаружить элементы http://kineticjs.com/docs/Kinetic.Node.html#moveToTop

circle.on('dragmove', function() { 
    this.moveToTop(); 
}); 

См JSFiddle ниже для примера.

JSFIDDLE

Кроме того, проверьте getIntersection() метод http://kineticjs.com/docs/Kinetic.Stage.html#getIntersection, чтобы увидеть, какие элементы пересекают точку.

+0

Если на сцене «n» указано количество слоев n> 100, и каждый слой имеет «m» количество фигур, скажем m> 20, тогда, при наведении курсора мыши, mousemove, mousedown, ..... будет ли он искать линейно повторяя все слои и его формы, чтобы определить, какое событие формы должно срабатывать? – mohit

Смежные вопросы