Actionscript AS3:访问变量值
我在舞台上有3个按钮每个按钮都应该播放一个声音。。。我正在努力 使类代码动态化。但是我遇到了一个问题,请查看代码 我需要帮助 我希望得到变量中的字符串,而不仅仅是名称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
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]);
}