MouseDown / MouseMove /单击Flex拖放的问题

时间:2009-09-15 23:56:27

标签: flash flex drag-and-drop

在Flex 3中,我有一个ItemRenderer,里面有一个按钮。我希望用户能够单击并拖动此渲染器,但也只需单击按钮。

现在,它正在使用Renderer监听“MouseMove”来启动拖放,并按下“click”按钮。

然而,这非常棘手。如果某人正在拖动滚动条并且到达该渲染器附近的任何位置,则MouseMove会在渲染器上触发并启动拖动。 (或者如果有人正在调整HDividedBox的大小,基本上如果有人在应用中的任何地方发起了点击并滚动此渲染器,我们就会进行不必要的拖动。

替代方案是侦听MouseDown而不是MouseMove,它修复了上一个问题,但是嵌套按钮失去了它的点击。我可以点击按钮,但渲染器只是认为是时候拖动了。

到底有没有?

1 个答案:

答案 0 :(得分:2)

快速,简单的处理方法是让按钮监听MouseDown,并通过调用事件监听器中的event.stopPropagation()来阻止事件冒泡到渲染器。