EaselJs canvas dragstart 事件没有冒泡到父级

EaselJs canvas dragstart event not bubbling to parent

我有一些 canvas 元素,需要拖动它们。 (不是 canvas 元素中的元素,我指的是实际的 canvas DOM 节点)

代码如下所示

<div class="top-parent" draggable="true">
  <div class="inner-parent">
     <canvas></canvas>
  </div>
</div>

如果我只有一个未使用 createjs 初始化的常规 canvas 元素,我正在工作的拖放库工作正常(我相信它在 html5 dragstart 事件后工作) .如果我使用 new createjs.Stage(canvas); 拖放功能不起作用,似乎 dragstart 事件没有冒泡,或者甚至没有被注册。

我试过了 stage.enableDOMEvents = true; 这似乎不起作用 - 我想这是有道理的,因为它应该是默认选项,但我想无论如何我都会尝试。

EaselJS Stage 实例默认在原生 touch/mouse 事件上调用 preventDefault(),以防止 canvas 被选中(并获得丑陋的选择突出显示)。尝试使用以下方法禁用此功能:myStage.preventSelection = false;。这应该能让这些事件正常进行,这可能会让您的拖放库正常运行。

如果您根本不在 Stage 中使用鼠标事件(例如带有单击、mouseDown 等处理程序的 DisplayObject 实例),您可以通过以下方式从 DOM 事件中完全取消订阅舞台使用:myStage.enableDOMEvents(false);。请注意 enableDOMEvents 是一种方法,而您在示例中试图将其用作 属性。