Button Array和Switch Statement:ActionScript3

时间:2013-12-03 16:56:53

标签: arrays flash switch-statement

我是动作脚本3(和这个网站)的新手,我很难做一些可能非常基本的事情。我所拥有的是舞台上的两个电影片段,它们将充当按钮。我把它们命名为btn1和btn2。我要做的是创建一个这些“按钮”的数组,并为每个按钮添加一个事件监听器。单击一个按钮时,将转到特定框架。单击另一个时,您将转到另一个框架。但是,当我单击btn1时,我会在输出窗口中“转到第2帧”,这是不正确的。我不确定我做错了什么。

在第1帧我有以下内容:

import flash.events.MouseEvent;
import flash.events.Event;

stop();

var buttons:Array = ["btn1","btn2"];


for (var i:int =0; i < buttons.length; i++)
{
    var buttonName:Object = buttons[i];
    this.addEventListener(MouseEvent.CLICK, onButtonClicked);
    trace(buttonName);
}

function onButtonClicked(event:MouseEvent):void
{
    switch (buttonName)
    {
        case "btn1" :
            trace("go to frame 1");
            break;
        case "btn2" :
            trace("go to frame 2");
            break;
        default :
            break;
    }
}

1 个答案:

答案 0 :(得分:0)

MouseEvent.target为您提供了在事件处理程序中调度您处理事件的对象,这应该很容易使用按钮id属性(如果已设置)或通过对象比较来识别它

使用id

的示例
function onButtonClicked(event:MouseEvent):void
{
    switch (event.target.id)
    {
        case btn1.id:
            //do something
            break;
        case btn2.id:
            //do something
            break;
        default:
            //do something
            break;
    }
}

使用对象比较的示例

function onButtonClicked(event:MouseEvent):void
{
    if (event.target === btn1)
    {
        //do something
    }
    else if (event.target === btn2)
    {
        //do something
    }
}