我对stackoverflow的第一个问题,所以请善待。
我在createjs舞台上有两个形状。第一个background
涵盖了整个阶段,并在click
上定义了一个监听器。我想在这个上加上另一个形状,这个不应该触发在背景上定义的点击监听器。
在以下示例中,点击红色circle
会触发background
的听众。
var stage = new createjs.Stage('c');
var rect = new createjs.Shape();
rect.graphics.beginFill('#0000ff').drawRect(0, 0, 50, 50);
var background = new createjs.Shape();
background.graphics.beginFill('#000000').drawRect(0, 0, 500, 500);
background.alpha = 0.7;
background.on('click', function () {
circle.visible = !circle.visible;
stage.update();
});
var circle = new createjs.Shape();
circle.graphics.beginFill('#ff0000').drawCircle(225, 225, 50);
// circle.on('click', function () {});
stage.addChild(rect);
stage.addChild(background);
stage.addChild(circle);
stage.update();
https://codepen.io/anon/pen/rKmPOY
我发现,如果我在圈子上放置一个空的click
听众,我就会得到我想要的东西,但这感觉很尴尬。
这里的正确方法是什么?这不应该是一个冒泡的问题,因为背景和圈子是兄弟姐妹。或者我是否完全错了?
答案 0 :(得分:0)
如果某些内容没有点击侦听器,则单击鼠标时将不会对其进行评估。这绝对是一种理想的行为(让你不喜欢阻止点击的事情会更烦人。)
添加空侦听器的解决方法很好,而且非常典型。
我能想到的唯一其他选择是检查点击鼠标下的内容,并手动过滤,这样做更多。
干杯,