2013-11-28 3 views
0

В следующем примере у меня есть две формы, прямоугольник и полупрозрачный круг: http://jsfiddle.net/cequiel/zZ22s/Kineticjs: Избегайте форму принимает какое-либо событие мыши

var stage = new Kinetic.Stage({ 
    container: 'canvas', 
    width: 800, 
    height: 600 
}); 
var layer = new Kinetic.Layer(); 

// adds a rectangle 
var rect = new Kinetic.Rect({ 
    x: 100, 
    y: 50, 
    width: 200, 
    height: 150, 
    fill: 'yellow', 
    stroke: 'black' 
}); 
rect.on('mousedown', function() { 
    $('#text').text('mouse down'); 
}).on('mouseup', function() { 
    $('#text').text('mouse up'); 
}).on('mouseenter', function() { 
    $('body').css('cursor', 'pointer'); 
    $('#text').text('mouse enter'); 
}).on('mouseleave', function() { 
    $('body').css('cursor', 'default'); 
    $('#text').text('mouse leave'); 
}); 
layer.add(rect); 

// adds a semitransparent circle 
var circ = new Kinetic.Circle({ 
    x: 300, 
    y: 125, 
    radius: 60, 
    fill: 'green', 
    stroke: 'black', 
    opacity: 0.2, 
    locked: true 
}); 
layer.add(circ); 

stage.add(layer); 

Прямоугольник захватывает мышь вниз, вверх, войти и оставить события , Но когда мышь над кругом, прямоугольник не получает никакого события. И это прекрасно. Но как я мог избежать этого? Я имею в виду, как я мог сделать круг «невидимым» для событий мыши? Я ищу что-то похожее на свойство mouseEnabled, определенное в AS3: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#mouseEnabled

Спасибо.

ответ

1

Вы можете указать любую форму, чтобы временно остановить прослушивание событий, как это:

myShape.setListening(false); 
+0

Большое спасибо! Ты мой кумир :) Это решает мой вопрос. – Cequiel

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