2010年02月20日
VectorクラスとArrayクラス @ Flash
いつもArrayを使う時に型指定しなくて良いのかなと思っていたのですが、ありました。Vectorが。(^_^;)
Vectorって全然違うモノを想像していて、使ってなかったのですが、型指定したい配列の場合はこれを使うようです。
当然型指定した場合、パフォーマスも良くなるはずなので、内容や動かす環境によっては必須ですね。
ただ、多次元配列となるとちょっと面倒。例えば二次配列。
private static const table:Array = [[0,1,2,3],[0,1,3,2],[0,2,1,3],[0,2,3,1],[0,3,1,2],[0,3,2,1],
[1,0,2,3],[1,0,3,2],[1,2,0,3],[1,2,3,0],[1,3,0,2],[1,3,2,0],
[2,0,1,3],[2,0,3,1],[2,1,0,3],[2,1,3,0],[2,3,0,1],[2,3,1,0],
[3,0,1,2],[3,0,2,1],[3,1,0,2],[3,1,2,0],[3,2,0,1],[3,2,1,0]];
こんな感じで配列が有る場合、書き換えるとこんな感じです。
private static const table:Vector.<Vector.<uint > > = Vector.<Vector.<uint > > ([
Vector.<uint > ([0,1,2,3]),Vector.<uint > ([0,1,3,2]),Vector.<uint > ([0,2,1,3]),Vector.<uint > ([0,2,3,1]),Vector.<uint > ([0,3,1,2]),Vector.<uint > ([0,3,2,1]),
Vector.<uint > ([1,0,2,3]),Vector.<uint > ([1,0,3,2]),Vector.<uint > ([1,2,0,3]),Vector.<uint > ([1,2,3,0]),Vector.<uint > ([1,3,0,2]),Vector.<uint > ([1,3,2,0]),
Vector.<uint > ([2,0,1,3]),Vector.<uint > ([2,0,3,1]),Vector.<uint > ([2,1,0,3]),Vector.<uint > ([2,1,3,0]),Vector.<uint > ([2,3,0,1]),Vector.<uint > ([2,3,1,0]),
Vector.<uint > ([3,0,1,2]),Vector.<uint > ([3,0,2,1]),Vector.<uint > ([3,1,0,2]),Vector.<uint > ([3,1,2,0]),Vector.<uint > ([3,2,0,1]),Vector.<uint > ([3,2,1,0])]);
可成り面倒。しかも読み辛い。(笑)
場合によっては、最初に
private var map:Vector.<Vector.<Boolean>> = new Vector.<Vector.<Boolean>>(64);
としておいて、
for (i=0; i<=64; i++){
map[i] = new Vector.<Boolean>(64);
for (j=0; j<=64; j++){
map[i][j] = true;
}
}
こんな感じで初期化して使った方が楽かも。
二次配列でも面倒なのに、三次元となると更に面倒だな。と言うか視認性悪すぎ。パフォーマンス的にどのくらい改善されるのか確認してませんが、頻繁に呼び出す場合には多分効果があるのだと思います。時間がある時にでも確認してみようかな。視認性の良いArrayで最初に書いておいて、初期化時点でVectorにデータを入れて、以降はVectorで使うとか、どうなんだろう。などなど気になるので。
参考サイト
[Astro] Vector クラス(5) 〜多次元配列〜【閃光的網站・弛緩複合体 -Review Division-】
>>関連リンク
関連日記
- 2007年01月11日 iPodドックコネクタ (11878)@ 電子工作
- 2007年01月10日 LCDキャラクタディスプレイモジュール (9631)@ 電子工作
- 2010年01月15日 VMware上のXP、ボリュームを拡張 (5905)@ Windows
- 2007年05月14日 MIDI -> CV/GATEコンバータ(3) (5216)@ 電子工作
- 2008年04月27日 Tweenerの_bezier (3482)@ Flash
- 2010年03月28日 Xcodeでソースコードの整形 (3253)@ Mac
- 2004年08月21日 PHPObject (3139)@ ウェブ
- 2006年03月14日 MX Widgets 3(Dreamweaver機能拡張) (2786)@ Mac
- 2006年11月06日 SDCCで配列 (2785)@ 電子工作
- 2009年03月01日 Pixel Bender V.S. ColorMatrixFilter (2665)@ Flash
- 2012年08月06日 Adobe Illustratorから形状のソースコードを書き出す(4) (2096)@ iOS
- 2007年09月02日 Yahoo!Flash版地図APIバージョンのezGPS (1947)@ ウェブ
- 2010年05月23日 NSArrayではまる (1791)@ Mac
アマゾン広告
この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。