Как предотвратить создание формы за щелчком для запуска в createjs - PullRequest
0 голосов
/ 12 июня 2018

Мой самый первый вопрос к stackoverflow, поэтому, пожалуйста, будьте добры.

У меня есть две фигуры на стадии создания.Первый 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, у меня будет то, что я хочу, но это неловко.

Какой правильный подход здесь?Это не должно быть пузырящейся проблемой, так как фон и круг - это братья и сестры.Или я все неправильно понял?

1 Ответ

0 голосов
/ 13 июня 2018

Если что-то не имеет прослушивателя щелчков, оно не будет оцениваться при щелчке мыши.Это определенно желаемое поведение (гораздо неприятнее иметь вещи, которые вы не хотите блокировать щелчки).

Ваш обходной путь добавления пустого слушателя - это хорошо, и довольно типично.

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

Приветствия,

...