Flash Professional CS5 と Flex SDK 4 から、初期値を指定して Vector を初期化できるようになりました。これはコンパイラーの仕様変更です。
いくつかの型では、既に、インスタンスを生成する際に 3 種類の手段、初期値の指定、コンストラクターの使用、グローバル関数の使用、を利用することができました。例えば、配列の場合は以下のようにしてインスタンスを生成することができます。
// 初期値を [] 内に指定
var arr1:Array = ["a", "b", "c"];
// コンストラクターを使用
var arr2:Array = new Array("a", "b", "c");
// グローバル関数を使用
var obj:Object = ["a", "b", "c"];
var arr3:Array = Array(obj);
(注:上の例の arr3 は、最初の要素に obj を持つ配列になります。つまり、arr3 は配列の配列です。ということで、この場合 Array() グローバル関数はキャストとしては使えません。Array 型で、キャストが目的のときには as 演算子を使用します。var arr3:Array = obj as Array; )
Vector のインスタンス生成手段は、いままではコンストラクターもしくはグローバル関数のどちらかでした。CS5 & Flex 4 からは、初期値を直接指定する構文が使えます。
Vector の初期化子指定
Vector は、配列と違って格納できる型が決まっています。そのため、Vector 型の属性宣言をする際、要素として持つオブジェクトの型も一緒に指定します。例えば、String を要素として持つ Vector 属性の宣言は下のように記述します。