当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > AS2数组使用小结

Flash动画制作
AS3.0实用代码:绘制各种各样三角形
AS代码研究实例:随即运动参数的传递应用
Flash制作3D类动画的教程
Flash AS3制作个性的旋转圆形网页导航
Flash AS2实例:跳动的小球动画效果
Flash交互动画制作技巧:按钮控制动画
Flash AS教程:详细讲解Math对象
Flash动画制作技巧:搞笑动画制作实例
Flash制作技巧:人物行走动画制作剖析
Flash AS3常用的关于MC的代码
Flash AS3.0教程:间隔循环的3种表现方式
Flash动画实例:简单的流星雨动画特效
Flash制作高级的人物行走动画
10个让你大饱眼福的创意Flash网站
Flash实例教程:吸管喝饮料动画
Flash CS4实例教程:漂亮的气泡动画
汇总网页传递参数到flex中的三种方法
AS教程:加载与被加载swf内部变量相互调用
Flash CS4教程:文字颜色缓动特效
Flash CS实例教程:幸运大抽奖动画

Flash动画制作 中的 AS2数组使用小结


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 26 ::
收藏到网摘: n/a

数组:
AS2里的数组类型有两个比较牛的地方:
1)数组对象自身可以存放任何数据类型,而不是如C++中的int a,char a,someClass a.
当然,坏处也立刻突现了出来,无法直接创建对象数组。
2)完全的动态数组,使用非常简单,有点像Vector,但同时也更易用出错。这里的动态指的是数组边界的大小(当然,维数还是要声明好的)。

下面是关于数组类型的一些个人认为比较重要点的小结,一些旁枝性的东东都略去了,
哪里少讲了或讲错了什么的话请务必帮我指出一下,大家共同提高:
1
以下声明错误:

var a:Array=new Array();
function test(arr[]:Array):Void

2声明方式1(注,这里的声明方式全部使用强类型声明方式)

var a:Array=new Array();
a[0]=0;
a=1;
trace(a);
//Output
0,1

3声明方式2

var a:Array=new Array(4);
a=1;
trace(a);
//Output
undefined,undefined,undefined,undefined,1

解释:动态数组,用a后长度自动变成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+" "+b+" "+b);
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+" "+b+" "+b);
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=12;
trace(b);
//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+" "+arr+" "+arr+" ");
}
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+" "+arr+" "+arr+" ");
}
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+" ");
}
test(b[0]);
test(b);
test(b);
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]
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]