« デバッガ版FlashPlayer | メイン | flashvars取得 »

Vectorクラスメモ

FlashPlayer10から追加されたクラスに、Vectorというものがあります。 Vectorクラスというのは、型の指定ができるArray(配列)クラスみたいなもので、Arrayより高速に処理できるそうです。 実際、VectorクラスはArrayクラスの全てのメソッドを実装しています。
Vectorクラスのインスタンスは下記のような感じで作成します。
import __AS3__.vec.Vector;
var vector:Vector.<型> = new Vector.<型>();
Vectorのコンストラクタには、
Vector(length:uint = 0, fixed:Boolean = false)
という2つの引数があります。
1つめの1engthは、初期化時に何個の要素を保持するかを指定します。
2つめのfixedは、1つめの引数にベクターの長さが固定されるか(true)、または変更できるか(false)を指定します。

Arrayには無い便利なメソッドとして、
•every(callback:Function, thisObject:Object = null):Boolean
指定された関数について false を返すアイテムに達するまで、ベクター内の各アイテムにテスト関数を実行します。

var vector:Vector. = new Vector.();
vector.push(0);
vector.push(1);
vector.push(2);
vector.push(3);
vector.push(4);
vector.every(everyTest);

function everyTest(item:int, index:int, vector:Vector.):Boolean{
if(item < 2){
trace("item:"+item);
trace("index:"+index);
return true;
}
return false;
}
//trace結果
item:0
index:0
item:1
index:1


•filter(callback:Function, thisObject:Object = null):Vector.
ベクター内の各アイテムについてテスト関数を実行し、指定された関数について true を返すすべてのアイテムを含む新しいベクターを返します。
var vector:Vector. = new Vector.();
vector.push(0);
vector.push(1);
vector.push(2);
vector.push(3);
vector.push(4);
vector.every(filterTest);

function filterTest(item:int, index:int, vector:Vector.):Boolean{
if(item < 2){
trace("item:"+item);
trace("index:"+index);
return true;
}
return false;
}
//trace結果
item:0
index:0
item:1
index:1


•forEach(callback:Function, thisObject:Object = null):void
ベクター内の各アイテムについて関数を実行します。
var vector:Vector. = new Vector.();
vector.push(0);
vector.push(1);
vector.push(2);
vector.push(3);
vector.push(4);
vector.every(forEachTest);

function forEachTest(item:int, index:int, vector:Vector.):void{
trace("item:"+item);
trace("index:"+index);
}
//trace結果
item:0
index:0
item:1
index:1
item:2
index:2
item:3
index:3
item:4
index:4

なかなか使えそうです。
詳しくは、Using Vectors in ActionScript 3 and Flash Player 10などをご覧ください。

トラックバック

このエントリーのトラックバックURL:
http://www.godagoda.net/cgi/blog/mt-tb.cgi/26

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年02月17日 00:00に投稿されたエントリーのページです。

ひとつ前の投稿は「デバッガ版FlashPlayer」です。

次の投稿は「flashvars取得」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。