在FlashPlayer 10之前,对于一个数组内的元素,我们是无法控制其类型的,也无法现在数组的长度,因为它可以自动增长,事实上,自动增长是会损失性能的,因为它需要动态分配内存地址。
FP10中增加了一个新的对象:Vector,它解决了上面的两个问题:
强类型
声明一个Vector对象你必须指定具体的类型:
- varv:Vector.<String>;
这里指定了一个强制的类型:String, 不能加入其他类型的元素到这个Vector中,比如:
- v[0] = 3.14;
这是不被允许的。
固定长度
你可以在构造函数中定于这个Vector的长度(也可以不定义)和设置是否为固定长度:
- newVector.<String>(length, fixed);
从测试看,Vector比Array在运算上快将近一倍:
- vari : uint;
-
vart : uint;
-
varlength : uint= 1000000;
-
//test Vector
- t = getTimer();
-
varv:Vector. = newVector.(length, true);
-
for( i = 0; i< length; i )
- {
-
v[i] = "1";
- }
-
trace(getTimer() - t);
-
//test Array
- t = getTimer();
-
vara:Array= newArray();
-
for( i = 0; i< length; i )
- {
-
a[i] = "1";
- }
-
trace(getTimer() - t);
本文参考文档:Flash_10.0/Vector.html" target=_blank>http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html
PS.感谢Mark提供AS3 Syntax Highlighting