我有许多画布元素,需要可拖动。 (不是canvas元素中的元素,我的意思是实际的canvas DOM节点)
代码看起来像这样
<div class="top-parent" draggable="true">
<div class="inner-parent">
<canvas></canvas>
</div>
</div>
如果我只有一个普通的canvas元素尚未使用createjs进行初始化,那么拖放库我的工作正常(我相信它可以解决html5 dragstart事件)。如果我使用new createjs.Stage(canvas);
拖放功能不起作用,则看起来dragstart事件没有冒泡,或者甚至没有注册。
我试过stage.enableDOMEvents = true;
这似乎不起作用 - 我认为这是有道理的,因为它应该是默认选项,但我想我还是会尝试。
答案 0 :(得分:3)
默认情况下,EaselJS Stage实例会对原生触摸/鼠标事件调用preventDefault()
,以防止选择画布(并获得难看的选择突出显示)。尝试使用以下代码禁用此功能:myStage.preventSelection = false;
。这应该让这些事件正常进行,这可能允许你的拖放库运行。
如果您根本没有在Stage
中使用鼠标事件(例如,带有click,mouseDown等处理程序的DisplayObject实例),您可以使用以下命令从DOM事件中完全取消订阅Stage:{{1} }。请注意,myStage.enableDOMEvents(false);
是一种方法,而您尝试将其用作示例中的属性。