【问题标题】:kinetic.js: stage not getting 'click' eventkinetic.js:舞台没有收到“点击”事件
【发布时间】:2014-08-02 22:20:18
【问题描述】:

我在我的应用程序的舞台上放置了一个事件处理程序,如下所示:

stage.on( 'click', onStageClick );

但是,我的事件处理程序没有被调用。当我在舞台创建的画布上放置一个点击事件处理程序时,如下所示:

$( stage.children[ 0 ].canvas._canvas ).on( 'click', onCanvasClick );

它确实被调用了。

stage 和 canvas 之间有什么东西可以吃点击事件吗?或者……我做错了什么?

奇怪的附录:如果我将 image 对象添加到画布中的 layer ......那么我确实开始在我的 stage 上收到 click 事件。

有什么想法吗?

【问题讨论】:

    标签: kineticjs


    【解决方案1】:

    尝试将contentClick 作为您的活动。

    来自KineticJS documentation:

    Kinetic Stage 支持 contentMouseover、contentMousemove、 contentMouseout, contentMousedown, contentMouseup, contentClick, contentDblclick, contentTouchstart, contentTouchmove, contentTouchend, contentTap 和 contentDblTap。

    这里有一个要演示的小提琴:http://jsfiddle.net/klenwell/L5MLq/

    【讨论】:

      【解决方案2】:

      监听contentClick 而不是click 事件:

      stage.on('contentClick',function(){
          var pos=stage.getPointerPosition();
          var mouseX=parseInt(pos.x);
          var mouseY=parseInt(pos.y);
      });
      

      【讨论】:

      • 谢谢你,@markE ...这当然是解决办法。我给 klenwell 打了官方答案复选标记,因为他比你早一点到达那里,但很高兴得到第二个人确认的答案。
      • 公平地说,@markE 在我之前完成了一点。当我开始时,我没有意识到他正在研究它,我一直在摆弄小提琴。
      • @klenwell。一切都很好......只要问题得到回答:-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多