Vectorクラスについて
前回、Vectorクラスについて書いていなかったのでそれについて
なぜ、Vectorクラスを利用したかというと
さらなる処理落ち改善のためです。Arrayよりかなり高速と聞いたので。
Vectorクラスの使い方。
宣言
var vec:Vector.
こんな感じに<>の中に要素の型を指定します。
使い方は配列と同じです。
sortやfilterなどArrayと同じメソッドがあります。
ついでにシューティングゲームプログラム内でも使っているfilterメソッドの使い方
リファレンスより
filter(callback:Function, thisObject:Object = null):Vector.
ベクター内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しいベクターを返します。
例えばこんな風に書いて使います。
package { import __AS3__.vec.Vector; import flash.display.Sprite; public class TestVector extends Sprite { public function TestVector() { var vec:Vector.<int> = new Vector.<int>(); //0から99までの数字を入れていく for(var i:uint = 0; i < 100; i++){ vec.push(i); } //中身の確認 for each(var j:uint in vec){ trace(j); } //要素を奇数のみにする。 vec = vec.filter(func); //中身の確認 for each(j in vec){ trace(j); } } //itemにはvecの要素 //indexにはitemが格納されているVectorの添字 private function func(item:uint, index:int, vec:Vector.<int>):Boolean{ return item % 2 == 0; //偶数ならtrue } } }
出力
1
2
3
:
:
99
0
2
4
:
:
96
98
という感じ
簡単にVector内のいらないものを削除して整理できる。
Arrayでも使い方は全く同じです。