gpt4 book ai didi

actionscript-3 - flash as3 - startDrag、stopDrag 的事件监听器?

转载 作者:行者123 更新时间:2023-12-04 04:27:04 25 4
gpt4 key购买 nike

我希望能够区分影片剪辑是被拖动还是被点击,并相应地执行不同的功能。问题在于 startDrag 由 MOUSE_DOWN 启动,stopDrag 由 MOUSE_UP 启动,每次都会触发 CLICK 事件。我想做的是,在点击事件的条件下,说出类似“if dragging == true {do something}”的内容

我想我可以在 mouse_up 或 mouse_down 函数中设置一个标志,但问题是 mouse_down 与鼠标单击同时发生。我需要能够在实际的 stopDrag() 函数或其他东西中设置标志。我见过一个涉及设置超时的解决方案 - 我想避免这种情况。有什么想法吗?

最佳答案

我不得不处理很多次的事情。

我所做的是在捕获阶段创建一个额外的 CLICK 监听器(优先级高于您正在使用的任何其他东西),然后在该处理程序上,如果您知道它是一个拖动,您将停止事件的传播 -那么它就不会到达您的任何其他点击处理程序。

所以在你的情况下,如果你正在使用 startDrag(我使用我自己的自定义拖动例程),你可以这样做:

function myFuntionThatStartsTheDrag() {
myDragObject.startDrag();
myDragObject.addEventListener(MouseEvent.CLICK,suppressClick,true,9999,true);
}

function suppressClick(e:MouseEvent):void {
e.stopPropagation();
}

function myFunctionThatStopsTheDrag() {
myDragObject.stopDrag();
myDragObject.removeEventListener(MouseEvent.CLICK,suppressClick,true);
}

关于actionscript-3 - flash as3 - startDrag、stopDrag 的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11994352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com