我相信这是一件非常简单的事情,但我在谷歌上找了几个小时都找不到。我是新的ActionScript,我试图从一个字符串,由一个。php文件生成的变量数组。
我的PHP文件输出如下:
var1=42&var2=6&var3=string
我的ActionScript代码是:
public function CallAjax_VARIABLES(url:String , the_array:Array)
{
var request:URLRequest = new URLRequest(url);
var variables:URLLoader = new URLLoader();
variables.dataFormat = URLLoaderDataFormat.VARIABLES;
variables.addEventListener(Event.COMPLETE, VARIABLES_Complete_Handler(the_array));
try
{
variables.load(request);
}
catch (error:Error)
{
trace("Unable to load URL: " + error);
}
}
function VARIABLES_Complete_Handler(the_array:Array):Function {
return function(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
//the_array = loader.data; // this doesn't work.
//the_array = URLVariables.decode(loader); // this doesn't work either.
//trace(loader.data['var1']); // this outputs 42, so I'm getting the string from php.
};
}
我想你已经明白了这一点,但是,最后,我想有一个数组(在ActionScript),这将给我:
the_array['var1']=42;
the_array['var2']=6;
the_array['var3']="string";
我做错了什么?我该怎么办?谢谢!
编辑:我试图从php到ActionScript的变量。例:我的PHP文件正确地将数组转换为html查询,但我不知道如何在ActionScript中的数组中解析它们。
您应该使用URLVariables
。
var vars:URLVariables = new URLVariables(e.target.data);
这样你就可以简单地说:
trace(vars.var2); // 6
数组在这里是无用的,因为结果是关联的,而不是基于索引的,尽管您可以很容易地使用一个简单的循环将所有值放入数组中:
var array:Array = [];
for(var i:String in vars)
{
array.push(vars[i]);
}
我想你是在寻找parse_str函数
parse_str($str, $output);
对不起,我以为这是一个PHP问题。在ActionScript中,试试这个:
var the_array:URLVariables = new URLVariables();
the_array.decode(loader.data);
trace(the_array.var1);