但是我们还是要看到数组操作的好处,能遍历,能循环操作。 所以,小弟认为只要您需要的数据能用一个通项(或者多个参数)来表示或者具有一定的规律,可以用数学关系描述,用数组也能为你提高工作效率。 但是我们还需要对数组进行一定的加工,才能用。
加工步骤一:
var my_arr:Array=new Array(); my_arr[0]= "变量一=123"; my_arr[1]= "变量二=456"; 数组各项采用name=value形式,
加工步骤二:
var a:Number=my_arr.length; var i:Number my_arr[a]=""; for (i=0; i<a; i++) { my_arr[a]= my_arr[a]+ my_arr[i]+"&"; } trace(my_arr[a]);
遍历所有数组项,用&符号连接各项,并添加到该数组的最后一项。 Trace得到变量一=123&变量二=456&,这样就已经得到符合要求的字符串了。
加工步骤三:
var my_urlloader:URLLoader=new URLLoader() my_urlloader.data=my_arr[a] trace(my_urlloader.data)
将上面数组的最后一项赋值,即变量一=123&变量二=456&,给my_urlloader.data
初看起来,确实很麻烦。 偶无聊,于是给Array类prototype了一个新方法toloadvars,把上面说到的几个步骤,进行了一定的集成,如下:
Array.prototype.toloadvars=function(URLrequest:URLRequest){ var i:Number var a:Number=this.length this[a]="" for(i=0;i<a;i++){ this[a]=this[a]+this[i]+"&" } URLrequest.data=this[a] return URLrequest.data };
看看怎么用吧?新手又必要看,老鸟别笑我 举个例子:
Array.prototype.toloadvars=function(URLrequest:URLRequest){ var i:Number var a:Number=this.length this[a]="" for(i=0;i<a;i++){ this[a]=this[a]+this[i]+"&" } URLrequest.data=this[a] return URLrequest.data }; var arr:Array=new Array(); arr[0]="a=123" arr[1]="b=456" arr[2]="c=789" arr[3]="d=abc" var my_url:URLRequest=new URLRequest() arr.toloadvars(my_url); trace(my_url.data)
- 第一步:把新定义的toloadvars方法复制到动作面板顶部,
- 第二步:定义数组,用来组织变量,注意格式。这里就看个人发挥了。用的好,能大大提高效率。
- 第三步:定义URLRequest对象
- 第四步:调用数组的toloadvars方法,传递参数是my_url对象。
然后就开始执行自定义的toloadvars方法了, 该方法将自动将数组中定义的每一个变量,用&连接起来,然后将连接后的结果送到URLrequest.data属性里面。
最后提示:最好将URLRequest对象的url,method都定义好,然后用数组组织变量,然后用toloadvars方法。这个思路会稍微清晰点,不会混乱。
经典论坛讨论: http://bbs.blueidea.com/thread-2797000-1-1.html
本文链接:http://www.blueidea.com/tech/multimedia/2007/5077.asp
出处:蓝色理想
责任编辑:tada
上一页 AS3中数据发送与接收 [3] 下一页
◎进入论坛RIA设计与应用版块参加讨论
|