我确定这是一件非常简单的事情,但我无法在Google上找到它好几个小时。 我是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中解析数组。
答案 0 :(得分:1)
您应该使用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]);
}
答案 1 :(得分:0)
抱歉,我认为这是一个PHP问题。在ActionScript中,试试这个:
var the_array:URLVariables = new URLVariables();
the_array.decode(loader.data);
trace(the_array.var1);
答案 2 :(得分:0)
我认为你正在寻找parse_str函数
parse_str($str, $output);