Flash Player 10新特性:Vector

http://www.webjx.com/  2008-11-04 04:36:42  来源:网页教学网 

Webjx核心提示:在Flash Player 10之前,对于一个数组内的元素,我们是无法控制其类型的,也无法现在数组的长度,因为它可以自动增长,事实上,自动增长是会损失性能的,因为它需要动态分配内存地址。

在Flash Player 10之前,对于一个数组内的元素,我们是无法控制其类型的,也无法现在数组的长度,因为它可以自动增长,事实上,自动增长是会损失性能的,因为它需要动态分配内存地址。

FP10中增加了一个新的对象:Vector,它解决了上面的两个问题:

强类型
声明一个Vector对象你必须指定具体的类型:

  1. var v:Vector.<String>;  

这里指定了一个强制的类型:String, 不能加入其他类型的元素到这个Vector中,比如:

  1. v[0] = 3.14;  

这是不被允许的。

固定长度
你可以在构造函数中定于这个Vector的长度(也可以不定义)和设置是否为固定长度:

  1. new Vector.<String>(length, fixed);  

从测试看,Vector比Array在运算上快将近一倍:

  1. var i : uint;   
  2. var t : uint;   
  3. var length : uint = 1000000;   
  4.   
  5. //test Vector   
  6. t = getTimer();   
  7.   
  8. var v:Vector. = new Vector.(length, true);   
  9. for( i = 0; i < length; i ++ )   
  10. {   
  11.     v[i] = "1";   
  12. }   
  13.   
  14. trace(getTimer() - t);   
  15.   
  16. //test Array   
  17. t = getTimer();   
  18.   
  19. var a:Array = new Array();   
  20. for( i = 0; i < length; i ++ )   
  21. {   
  22.     a[i] = "1";   
  23. }   
  24.   
  25. trace(getTimer() - t);  

本文参考文档:http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html

PS.感谢Mark提供 AS3 Syntax Highlighting

更多