Kineticjs:避免形状接收任何鼠标事件

时间:2013-11-28 22:32:11

标签: events mouse kineticjs

在下面的示例中,我有两个形状,一个矩形和一个半透明圆: http://jsfiddle.net/cequiel/zZ22s/

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);

矩形捕捉鼠标,向上,向上和离开事件。但是当鼠标悬停在圆圈上时,矩形不会收到任何事件。这很好。但是,我怎么能避免这种情况呢?我的意思是,我怎么能让圆圈对鼠标事件“隐形”?我正在寻找类似于AS3中定义的'mouseEnabled'属性的东西: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#mouseEnabled

感谢。

1 个答案:

答案 0 :(得分:1)

您可以指示任何形状暂时停止收听此类事件:

myShape.setListening(false);