Vector em AS3 para Flash Player 10
Para aqueles que já estão usando Flash Player 10, trocar o Array por Vector é uma boa opção, pois você ganha em performance e organização de código (Vector é um array tipado ou seja, mais organizado).
O que mudou mais é a forma de construir o objeto, a sintaxe funciona como o Generics do C# ou Java. Ressaltando que não existe generics em AS3, somente o Vector que implementa uma sintaxe parecida com a sintaxe de um generics.
Muitos blogueiros já comentaram sobre o Vector logo quando saiu a versão beta do Flash Player 10. Por este motivo não vou falar muito sobre, vou apenas exemplificar e dar links para os outros blog.
Criando um Vector:
1 | var vetor:Vector.<T> = new Vector.<T>(); |
(Substitua o T pelo tipo desejado)
Veja como é parecido com um Array:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | package { import __AS3__.vec.Vector; import flash.display.Sprite; import flash.utils.getTimer; [SWF(framerate="30", width="500", height="500")] public class Main extends Sprite { private var _vector:Vector.<String> = new Vector.<String>(); private var _timer:Number; public function Main() { _vector.push("a"); _vector.push("b"); trace(_vector.length); _vector.push("c"); trace(_vector.length); _vector[_vector.length] = "d"; trace(_vector.length); for each (var s:String in _vector) { trace("FOR: " + s); } trace("Timer Vector:"); testVector(); trace("Timer Array:"); testArray(); } private function testArray():void { _timer = getTimer(); var array:Array = new Array(); for(var i:uint = 0; i < 1000000; i++) { array[i] = i; } trace(getTimer() - _timer); } private function testVector():void { _timer = getTimer(); var vector:Vector.<uint> = new Vector.<uint>(); for(var i:uint = 0; i < 1000000; i++) { vector[i] = i; } trace(getTimer() - _timer); } } } |
(O código acima é a Main Class de um projeto Flex / ActionScript)
Teste de performance entre arrays, vector e outros:
http://businessintelligence.me/projects/performance_tester/performanceTester.html
Veja na imagem abaixo como é “gritante” a diferença de performance entre um Array comum e um Vector:

Conteúdo relacionado:
Documentação do Vector
Teste de performance
Post sobre Vector por: Mike Chambers
Post sobre Vector por: DaveOnCode
Post sobre Vector por: The Back Button
Posts relacionados:
