Actionscript AS3:访问变量值

Actionscript AS3:访问变量值,actionscript,actionscript-3,Actionscript,Actionscript 3,我在舞台上有3个按钮每个按钮都应该播放一个声音。。。我正在努力 使类代码动态化。但是我遇到了一个问题,请查看代码 我需要帮助 我希望得到变量中的字符串,而不仅仅是名称 package { import flash.display.MovieClip; import flash.events.MouseEvent; public class CustumClass extends MovieClip { private var R1:String ="i

我在舞台上有3个按钮每个按钮都应该播放一个声音。。。我正在努力

使类代码动态化。但是我遇到了一个问题,请查看代码

我需要帮助

我希望得到变量中的字符串,而不仅仅是名称

package 
{
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class CustumClass extends MovieClip
    {
    private var R1:String ="im a string inside R1";
    private var R2:String ="im a string inside R2";
    private var R3:String  = "im a string inside R3";

    private var btns:Array;
    private var link:String;

        public function CustumClass()
        {
            // constructor code
            btns = new Array(r1,r2,r3);  //___ buttons on stage
            onLoop();

        }
        private function onLoop():void
        {
            for (var i:int = 0; i<btns.length; i++)
            {
                btns[i].addEventListener(MouseEvent.CLICK,handleBtn);
            }
        }

        private function handleBtn(e:MouseEvent):void
        {
            // ____ i want to get the string inside variable 

            link = e.target.name.toUpperCase();
            trace (link);
        }
    }

}
包
{
导入flash.display.MovieClip;
导入flash.events.MouseEvent;
公共类CustumClass扩展了MovieClip
{
private var R1:String=“我是R1中的字符串”;
private var R2:String=“我是R2内部的字符串”;
private var R3:String=“我是R3中的字符串”;
专用无功基站:阵列;
私有变量链接:字符串;
公共函数CustumClass()
{
//构造代码
btns=新阵列(r1、r2、r3);//______;台上的按钮
onLoop();
}
私有函数onLoop():void
{

对于(var i:int=0;i而不是将按钮存储在
数组中

private var btns:Array;
使用

然后将每个引用添加到按钮以及要与其关联的
字符串

// constructor code

buttons[r1] = "text for r1";
buttons[r2] = "text for r2";
buttons[r3] = "text for r3";

onLoop();
您可以迭代这些键

private function onLoop():void
{
    for (var button:Object in buttons)
    {
        button.addEventListener(MouseEvent.CLICK,handleBtn);

        // if above fails, try something like
        IEventListener(button).addEventListener(MouseEvent.CLICK,handleBtn);
    }
}
可以使用键检索值

private function handleBtn(e:MouseEvent):void
{
    trace (buttons[e.currentTarget]);
}

谢谢你的代码工作得很有魅力。我只是想知道是否有其他方法可以让代码工作array@AyoubHit根据作业选择工具,而不是相反。你可以使用
数组
来选择工具,但这样做几乎没有意义。不要强迫使用
数组
来解决问题。尽你所能打赌是既不使用
数组
也不使用
字典
,而是为您的按钮定义一个类。这样您就不需要数据结构来创建从一个按钮到
字符串
的关联,因为每个按钮都知道自己的
字符串
。非常感谢。我理解您的意思
private function handleBtn(e:MouseEvent):void
{
    trace (buttons[e.currentTarget]);
}