如何使用IF - Action Script 3.0检查哪个按钮被按下/未按下

时间:2014-04-27 03:44:58

标签: actionscript-3 flash if-statement mouseevent

我想检查是否使用2个eventListeners和2个函数按下/释放了4个屏幕按钮,我知道我可以让每个按钮按下/解压指向不同的功能但是这留下了8个eventListeners和8个函数总计,这里显示的CODE我可以使用键盘键而不是按钮(将mouseEvent更改为keyboardEvent等),但我需要它作为按钮

我的所有按钮都有不同的实例,它们都在另一个大实例中。

使用键盘我用(event.keycode == EXAMPLE.KEY)填充(I_DONT_KNOW_WHAT_GOES_HERE),这样就完美了。

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

有没有办法实现这个目标?或者我必须以其他方式完成整个事情?

CODE:

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;
    }

}

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

您正在寻找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文档