ActionScript数组使用小结

2008-04-02 10:58:41来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  数组:

  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];

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: ActionScript3.0扩展库

下一篇: Flash实用技巧之蜡烛制造