AS2数组使用小结
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-13
本文节选自本人最近在制作的AS2语法研究报告,供AS爱好者交流,学习。 哪里说得不对或不当,还请指正,谢谢. 数组: AS2里的数组类型有两个比较牛的地方: 1)数组对象自身可以存放任何数据类型,而不是如C++中的int a[2],char a[3],someClass a[3]. 当然,坏处也立刻突现了出来,无法直接创建对象数组。 2)完全的动态数组,使用非常简单,有点像Vector,但同时也更易用出错。这里的动态指的是数组边界的大小(当然,维数还是要声明好的)。 下面是关于数组类型的一些个人认为比较重要点的小结,一些旁枝性的东东都略去了, 哪里少讲了或讲错了什么的话请务必帮我指出一下,大家共同提高: 1 以下声明错误: var a[1]:Array=new Array(); function test(arr[]:Array):Void 2声明方式1(注,这里的声明方式全部使用强类型声明方式) var a:Array=new Array(); a[0]=0; a[1]=1; trace(a); //Output 0,1 3声明方式2 var a:Array=new Array(4); a[4]=1; trace(a); //Output undefined,undefined,undefined,undefined,1 解释:动态数组,用a[4]后长度自动变成5。 4声明方式3 4.1 var b:Array=new Array(0,1,2,3); trace(b); 0,1,2,3 4.2并不支持这种形式的二维数组的嵌套定义 var b:Array=new Array((1,2),(3,4),(5,6)); trace(b); trace(b[0]+" "+b[1]+" "+b[2]+" "+b[3]); trace(b[0][0]); 2,4,6 2 4 6 undefined undefined 5用[]取代了C++中的{}; 声明方式4 var b:Array=[[1,2],[3,4],[5,6]]; trace(b); trace(b[0]+" "+b[1]+" "+b[2]+" "+b[3]); trace(b[0][0]); 1,2,3,4,5,6 1,2 3,4 5,6 undefined//用b[0]输出了一个数组行. 1 6二维的维数设定同样是动态的: var b:Array=[[1,2],[3,4],[5,6]]; b[2][3]=12; trace(b[2][3]); //Output 12 7其它的二维数组声明方式: 7.1通过行首参数设定相应的列数. // 2*3 Array Declare. var gRowIndex:Number=2; var gColIndex:Number=3; var a:Array=new Array(gRowIndex); for (var i=0;i for (var j=0;j a[i][j]=String(i)+String(j); } } trace(a); //Output 00,01,02,10,11,12 8数组作函数为参数的传递. 8.1 var b:Array=new Array(0,1,2,3); function test(arr:Array):Void { trace(arr[0]+" "+arr[1]+" "+arr[2]+" "+arr[3]+" "); } test(b); 0 1 2 3 8.2 二维数组: var b:Array=[[1,2],[3,4],[5,6]]; function test(arr:Array):Void { trace(arr); trace(arr[0]+" "+arr[1]+" "+arr[2]+" "+arr[3]+" "); } test(b); 1,2,3,4,5,6 1,2 3,4 5,6 undefined 8.3 行首参数的传递: var b:Array=[[1,2],[3,4],[5,6]]; function test(arr:Array):Void { trace(arr); trace(arr[0]+" "+arr[1]+" "); } test(b[0]); test(b[1]); test(b[2]); 1,2 1 2 3,4 3 4 5,6 5 6 9更多: 9.1 var gRowIndex:Number=2; var gColIndex:Number=3; var a:Array=[[0,1],[3,4,5]];//某个位置空缺某个元素,这里为[0][2] trace(a); for (var i=0;i for (var j=0;j trace(a[i][j]); } } 0,1,3,4,5 0 1 undefined 3 4 5 9.2动态维数并不支持 var b:Array=[5,6]; b[0][0]=3; trace(b[0][0]); //Output undefined。 9.3一个间接对象数组实现的例子. var enArray=new Array(3); // ------ 连接到ENEMY数组 --------- // for(var j=0;j<3;j++){ attachMovie("baddie", "baddie"+j, 200+j); enArray[j] = _root["baddie"+j]; enArray[j]._x = 50*j; enArray[j]._y = 100; } 9.4 还有很多实际中用得到的例子,比方说,用array 来保存颜色数据,加载图片的变量名等等。 10删除数组元 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 时钟下一篇: 从球形绳的制作学习简单三维
关于AS2数组使用小结的所有评论