我有一個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