我有一个MouseEvent.CLICK侦听器的按钮。当按下按钮时触发CLICK事件,鼠标在推出时关闭,然后在再次按下按钮时释放。我不希望发生这种情况,拖动按钮时不应发生点击事件。AS3:拖放按钮
我的Flash文件包含大量的按钮和点击侦听器,我想用尽可能少的代码来解决这个问题。这个问题最简单的解决方案是什么?
我有一个MouseEvent.CLICK侦听器的按钮。当按下按钮时触发CLICK事件,鼠标在推出时关闭,然后在再次按下按钮时释放。我不希望发生这种情况,拖动按钮时不应发生点击事件。AS3:拖放按钮
我的Flash文件包含大量的按钮和点击侦听器,我想用尽可能少的代码来解决这个问题。这个问题最简单的解决方案是什么?
您需要在需要时添加事件侦听器和处理程序,并在不再需要时删除它们。你会用自己的逻辑您的需求,但这里有一个例子:
button.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownEventHandler);
function mouseDownEventHandler(evt:MouseEvent):void
{
evt.currentTarget.addEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
evt.currentTarget.addEventListener(MouseEvent.ROLL_OUT, rollOutEventHandler);
trace("Mouse Down");
}
function mouseUpEventHandler(evt:MouseEvent):void
{
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
evt.currentTarget.removeEventListener(MouseEvent.ROLL_OUT, rollOutEventHandler);
trace("Mouse Click (Mouse Up)");
}
function rollOutEventHandler(evt:MouseEvent):void
{
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP, mouseUpEventHandler);
evt.currentTarget.removeEventListener(MouseEvent.ROLL_OUT, rollOutEventHandler);
trace("Roll Out");
}
,如果你有很多它的行为方式相同的按钮,你应该创建一个自定义按钮,其中所有的按钮会实例。
+1最后一点。 – Marty