4

在 KineticJS 中,如何检测Click在对象/形状之外发生点击的事件?

我正在尝试将Rect其比例更改2为用户单击它时的比例,并返回到1用户单击其外部任何位置时的比例。

JSfiddle:http: //jsfiddle.net/ABTAD/8/

设法检测到舞台上的点击,但点击Rect也会触发点击处理程序!!!并且以某种方式.setScale(1)不做任何事情,同时console.log打印出一些东西。Rect当在而不是空舞台上单击时,如何防止单击处理程序触发?

检测舞台点击的JS代码

window.stage.getContainer().addEventListener('click', function(e) {
    $.each(window.layer.get('.box'), function(index, box) {
       box.setScale(1);
       console.log('clicked on stage');
    });
});
4

1 回答 1

5

您可以使用 stage.getContent() 访问舞台内容包装器。从那里,您可以添加这样的事件处理程序:

stage.getContent().addEventListener('click', ...); // 普通的javascript

或者

$(stage.getContent()).on('click', ...); // jQuery

于 2012-12-19T15:45:22.660 回答