【问题标题】:KineticJS: Clicks to background layers stop firing after drawKineticJS:点击背景图层在绘制后停止触发
【发布时间】:2013-07-19 02:59:54
【问题描述】:

KineticJS 似乎在重绘舞台后处理对背景层的点击有问题。

我有一个 jsfiddle 和这个问题的一个最小例子。 http://jsfiddle.net/Z2SJS/

在第 34 行我有:

stage.draw()

如果将其注释掉,则事件会按应有的方式触发。当它存在时,将点击事件拖到后台后将停止触发。

我知道在这个例子中我没有做任何需要我重新绘制舞台的事情,但是在我的项目中我使用了 dragstart 和 dragmove 事件来操作多个图层上的对象,然后我失去了对我的背景的引用点击。

我需要做些什么来确保重绘舞台不会导致我的事件停止触发吗?

【问题讨论】:

    标签: events kineticjs


    【解决方案1】:

    不要使用stage.draw() 使用foreground.draw()

    这是更新后的fiddle

    或者:在圆实例化内设置dragOnTop: falseFiddle2

    【讨论】:

    • 从重绘舞台更改为重绘各个受影响的图层对我有用。设置 dragOnTop: false 无效,我仍然无法调用 stage.draw()。我认为这是一个错误是错误的吗?
    • 嗯......我不确定......我看到我的小提琴仍然有 foreground.draw() 所以不是 dragOnTop 做出了改变。似乎压回并没有帮助建立新的小提琴。无论如何!所以这可能不是一个错误,但 Eric(KineticJS 创建者)可能是回答这个问题的最佳人选
    • 顺便说一句,为了获得更好的性能,重绘单个图层而不是整个舞台总是好的
    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 2010-11-23
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多