处理URLVariables可以直接在URLLoader中进行,只要更改URLLoader对象的dataFormat属性,将其设置为URLLoaderDataFormat.VARIABLES,就可以令URLLoader识别加载的URLVariables数据。当利用URLLoader加载URL字符串时,不需要调用decode()方法。
下面的代码利用URLLoader对象处理外部URLVariables文本数据。
var myld:URLLoader=new URLLoader();
//定义加载格式
myld.dataFormat=URLLoaderDataFormat.VARIABLES;
//加载url字符串
myld.load(new URLRequest("url.txt"));
//侦听加载完成
myld.addEventListener(Event.COMPLETE,loadcomplete);
function loadcomplete(ea:Event):void {
//加载成功后,输出相关元素
trace(myld.dataFormat);
trace((myld.data as URLVariables).va1);
trace((myld.data as URLVariables).va2);
trace((myld.data as URLVariables).va3);
trace((myld.data as URLVariables).va4);
trace((myld.data as URLVariables).va5);
}
代码可以正确的输出文本中的数据:
/*
variables
Twar
andy_with_his_mon
"Kench"
Leothe/n
Lion
'Uncle in WW2.'
*/
URLLoader加载外部文本需要利用许多字符串的处理技巧。如果URLVariables字符串中某个值包含一组值,可以使用字符串的split()方法将其分割为数组。虽然ActionScript代码中,提供的字符串操作能力是非常强大的。但是过于复杂的文本操作,不利于数据的定义和交换。
文本格式的数据仅仅适合简单的信息,对于具有复杂构造和多级结构的数据,存储URLVariables的文本很难清晰的表达。更清晰的定义外部数据,就需要利用XML文件。