分享
 
 
 

ActionScript数组使用小结

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

本文节选自本人最近在制作的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<gRowIndex;i++)

{ a[i]=new Array(gColIndex);

for (var j=0;j<gColIndex;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<gRowIndex;i++)

{

for (var j=0;j<gColIndex;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删除数组元素:

10.1一维:

var p=new Array(1,2,3,4,5);

p.splice(1);

trace(p);

var t=new Array(1,2,3,4,5);

t.splice(2,1);

trace(t);

//Output

1

1,2,4,5

10.2二维情况:

var b:Array=[[1,2],[3,4],[5,6]];

b[0].splice(0);//delete c[0][0] c[0][1]

trace(b);

var c:Array=[[1,2],[3,4],[5,6]];

c[1].splice(1);//c[1][1]

trace(c);

,3,4,5,6

1,2,3,5,6

11长度测试:

var b:Array=[[1,2,2],[3,4],[5,6,4,5]];

trace(b.length);

trace(b[0].length);

trace(b[2].length);

//Output

3

3

4

=========================================================

一个月后的补充:

11动态维数:跟JAVA中一样的.

var arr:Array=new Array(1);

arr[0]=new Array(3);

arr[0][0]=1;

arr[0][1]=2;

arr[0][2]=3;

trace(arr);

trace(arr[0][0]);

trace(arr[0][1]);

trace(arr[0][2]);

1,2,3

1

2

12加载数据的新方式(多重属性):

mData=new Array();

mData.addItem({ label: "二球动量守恒(一维)" ,data:0});

mData.addItem({ label: "三球动量守恒(一维)" ,data:1});

mData.addItem({ label: "多球平面碰撞(二维)",data:2});

mData.addItem({ label: "子母球",data:3});

用于配合V2Component中的ComboBox的使用:

_root.menuCombo.dataProvider=mData;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有