Javascript Konva在层之间传播事件

Javascript Konva在层之间传播事件,javascript,canvas,kineticjs,konvajs,Javascript,Canvas,Kineticjs,Konvajs,我在形状层的顶部有一个透明的拖动层。非常适合使交互清晰,这样我就可以切换拖动的功能(在滚动视图或编辑形状位置之间)。但是,除非关闭拖动模式(通过隐藏中间的透明矩形),否则其他鼠标悬停事件都不会在其下方的形状层上触发。我需要将非拖动鼠标事件传播到它下面的层。有很多鼠标悬停事件的形状 是否有一种简单的方法将鼠标悬停事件传播到它下面的层,或者我是否需要编写一个自定义处理程序来为每个形状触发事件 我设法解决了这个问题,而不必在层之间传播事件。只有在未单击形状时,我才会在形状层上的形状后面放置一个可拖动的

我在形状层的顶部有一个透明的拖动层。非常适合使交互清晰,这样我就可以切换拖动的功能(在滚动视图或编辑形状位置之间)。但是,除非关闭拖动模式(通过隐藏中间的透明矩形),否则其他鼠标悬停事件都不会在其下方的形状层上触发。我需要将非拖动鼠标事件传播到它下面的层。有很多鼠标悬停事件的形状


是否有一种简单的方法将鼠标悬停事件传播到它下面的层,或者我是否需要编写一个自定义处理程序来为每个形状触发事件

我设法解决了这个问题,而不必在层之间传播事件。只有在未单击形状时,我才会在形状层上的形状后面放置一个可拖动的曲面。然后,在shape dragstart事件中,如果设置了LayerDragable标志,我将在形状上执行stopDrag(),在层上执行startDrag(),以覆盖是否单击形状。这使我可以用一个简单的标志来切换,无论是拖动整个层还是仅拖动形状

shape.on('dragstart', function () {
    if (layerDraggable) {
        shape.stopDrag();
        shapeLayer.startDrag();
    }
}
我必须在dragend事件中清理一点形状位置,但也可以使用形状上的dragbounds进行清理

shape.on('dragstart', function () {
    if (layerDraggable) {
        shape.stopDrag();
        shapeLayer.startDrag();
    }
}

我还尝试将所有内容放在同一层中,并将层侦听器中的事件激发到形状上,但没有成功。