2014-02-23 14 views
1

我想做一個單一的點擊,並讓它不重複的功能,如果我的鼠標仍然關閉,如果這是有道理的。如何在AS3中「如果單擊」而不是「如果MouseDown」?

目前,我有它:

if (mouseDown) 
{ 
    avatar.moveABit(0, -2); 
    sfxSoundChannel = moveSound.play(); 
} 

,如果我把我的鼠標按下它不斷重複這一點。我希望它只能用一次點擊來工作,並且必須繼續點擊才能完成,而不是將鼠標放下。

回答

0

你可能想

MouseEvent.MOUSE_CLICK 

我正在單擊監聽點擊的對象添加事件偵聽器,並點擊運行處理函數,其中將包括您的移動和soundplay代碼。

請參閱this documentation

0

您需要MouseEvent.CLICK像這樣:

//Create a function (which moves avatar) to be called on mouse click 
function moveAvatar(e:MouseEvent):void 
{ 
    avatar.moveABit(0, -2); 
    sfxSoundChannel = moveSound.play(); 
} 
stage.addEventListener(MouseEvent.CLICK, moveAvatar); //add mouse click event listener 

編輯:moveABit不應該使用ENTER_FRAME事件。

0

我不知道我是否正確理解它,也許我們需要更多的代碼來理解你真正想要的。 我假設你正在使用某種循環(setInterval,Event.ENTER_FRAME)來檢查鼠標按鈕是否關閉。如果你是,我想你應該改變只火一個函數裏是這樣的:

function OnMouseDownHandler(event:MouseEvent):void 
    { 
     avatar.moveABit(0, -2); 
     sfxSoundChannel = moveSound.play(); 
    } 
    stage.addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDownHandler, false, 0, true); 

如果使用MouseEvent.CLICK事件OnMouseDownHandler方法將只有當你鬆開鼠標按鈕使用的MouseEvent解僱。 MOUSE_DOWN的行爲更像一個「點擊」。

相關問題