所以.... eval()无从谈起,有什么想法吗?我也不知道如何在actionscript 3中使用“this”表达式或set()(我好像找不到任何完整的引用),只是通过php文件说一个多变量(test1,test2,test3,。 ..)通过“echo”发送,flash应用程序如何收到它?我试图不在mysql上使用xml来flash到flash应用程序。简单地说如何将字符串更改为变量?
示例
(在as3-actions框架面板中)
function datagridfill(event:MouseEvent):void{
var varfill:URLVariables = new URLVariables();
varfill.tell = "do it";
var filler:URLRequest = new URLRequest();
filler.url = "http://127.0.0.1/flashdbas3/sendin.php";
filler.data = varfill;
var filling:URLLoader = new URLLoader();
filling.dataFormat = URLLoaderDataFormat.VARIABLES;
filling.load(filler);
filling.addEventListener(Event.COMPLETE, datain);
function datain(evt:Event){
var arraygrid:Array = new Array();
testing.text = evt.target.Name2 // worked
// just say i = 1
i=1;
arraygrid.push({Name:this["evt.target.Name"+i],
Test:this.["evt.target.Test"+i]}); // error
//or
arraygrid.push({Name:this["Name"+i],
Test:this.["Test"+i]}); // error too
// eval() noexistent, set() didn't worked on actions frame panel
//?????
}
};
我希望非常清楚。
答案 0 :(得分:3)
如果我理解你的问题,你可以使用这个[varName]。
因此,如果varName是一个包含应该是变量名称的字符串的变量,那么您可以像这样设置和读取该变量:
this[varName] = "someValue";
trace(this[varName]);
更新
在你的例子中,你可以尝试:evt.target [“Test”+ i]而不是Test:this。[“evt.target.Test”+ i]
答案 1 :(得分:0)
如果您有一组要与值关联的字符串,则标准AS3方法是将对象用作哈希表:
var o = {}
o["test1"] = 7
o["test2"] = "fish"
print(o["test1"])