Flash AS3中数据发送与接收(4)

http://www.itjxue.com  2015-07-17 23:40  来源:未知  点击次数: 

但是我们还是要看到数组操作的好处,能遍历,能循环操作。
所以,小弟认为只要您需要的数据能用一个通项(或者多个参数)来表示或者具有一定的规律,可以用数学关系描述,用数组也能为你提高工作效率。
但是我们还需要对数组进行一定的加工,才能用。

加工步骤一:

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方法。这个思路会稍微清晰点,不会混乱。

(责任编辑:IT教学网)

更多

推荐Flash actionscript文章