簡體   English   中英

如何使用 IF 檢查按下/未按下哪個按鈕 - Action Script 3.0

[英]How to check which Button is pressed/unpressed with IF - Action Script 3.0

我想檢查是否使用 2 個 eventListeners 和 2 個函數按下/釋放了四個屏幕按鈕,我知道我可以使每個按鈕按下/松開指向不同的函數,但這總共給我留下了 8 個 eventListeners 和 8 個函數,此處顯示的代碼我可以使用鍵盤鍵而不是按鈕(將 mouseEvent 更改為 keyboardEvent 等)使其工作,但我需要它是按鈕

我所有的按鈕都有不同的實例,它們都在另一個大實例中。

使用鍵盤我用 (event.keycode ==EXAMPLE.KEY) 填充了 (I_DONT_KNOW_WHAT_GOES_HERE) 所以它完美地工作。

但我需要知道如何將 (KEYBOARD_KEY_BEING_PRESSED) 更改為 (INSTANCE_OF_BUTTON_BEING_PRESSED)

有沒有辦法實現這一目標? 或者我必須以其他方式完成整個事情?

代碼:

stage.addEventListener(MouseEvent.MOUSE_DOWN, mousePressed);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);

function mousePressed(event:MouseEvent):void
{

    if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonOnePressed = true;
    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonTwoPressed = true;

    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonThreePressed = true;

    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonFourPressed = true;
    }

}

function mouseReleased(event:MouseEvent):void
{

    if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonOnePressed = false;
    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonTwoPressed = false;

    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonThreePressed = false;

    }
    else if (I_DONT_KNOW_WHAT_GOES_HERE)
    {
        buttonFourPressed = false;
    }

}

您正在尋找Event.currentTarget ,它是最近調度事件的對象( Event.target是事件的原始調度程序)。 所以你檢查Event.currentTarget是否等於每個按鈕。

示例(不是一組有效的代碼,但它會讓您了解如何執行此操作)

var btn1:Sprite, btn2:Sprite, btn3:Sprite, btn4:Sprite;
function mouseDownHandler(e:Event):void {
    if (e.currentTarget == btn1) {

    }
    else if (e.currentTarget == btn2) {

    }
    else if (e.currentTarget == btn3) {

    }
    else if (e.currentTarget == btn4) {

    }
}

Event.currentTarget文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM