インスタンスの重ね順を管理する
インスタンスの重ね順を3次元風の表現に合わせて変えるには,
var my_array:Array = [3, 0, 1, 4, 2];
my_array.sort();
trace(my_array); // 出力: 0,1,2,3,4
このArray.
var my_array:Array = [30, 0, 1000, 4, 200];
my_array.sort();
trace(my_array); // 出力: 0,1000,200,30,4
Array.
配列.sort(比較関数);
function 比較関数(引数1:データ型, 引数2:データ型):Number {
// ふたつの引数の比較評価の結果を数値で返す
}
Array.
表1 比較関数の引数の大小と戻り値
引数の大小 | 戻り値 |
---|---|
引数1 < 引数2 | -1 |
引数1 = 引数2 | 0 |
引数1 > 引数2 | 1 |
たとえば,
var my_array:Array = [30, 0, 1000, 4, 200];
my_array.sort(compare);
function compare(nA:Number, nB:Number):Number {
if (nA < nB) {
return -1;
} else if (nA > nB) {
return 1;
} else {
return 0;
}
}
trace(my_array); // 出力: 0,4,30,200,1000
ところで,
var my_array:Array = [30, 0, 1000, 4, 200];
my_array.sort(Array.NUMERIC);
trace(my_array); // 出力: 0,4,30,200,1000
表2 Array.
定数 | 説明 |
---|---|
CASEINSENSITIVE | 英字の大文字小文字を区別せずに並べ替える。 |
DESCENDING | 並べ替えの順序を, |
NUMERIC | エレメントが数値の配列を, |
RETURNINDEXEDARRAY | ターゲットの配列は変更せず, |
UNIQUESORT | エレメントに重複がない配列のみを並べ替える。重複があれば, |
- ※2
- ふたつ以上のArray定数を同時に指定することもできる。その場合は,
ビット単位の論理和演算子|を用いて, 指定したい定数の論理和をとって, Array. sort()の引数として渡す。たとえば, 引数をつぎのように定数で指定すると, エレメントは数値で降順に並べ替えられる。 var my_
array:Array = [30, 0, 1000, 4, 200]; my_ array. sort(Array. NUMERIC | Array. ); trace(my_DESCENDING array); // 出力: 1000,200,30,4,0 - ビット演算ならびにビット単位の論理和演算子|については,
Adobeデベロッパーセンター 「ActionScript 3. 0におけるパフォーマンス向上のヒント」 06 「数値の演算」 の 「ビット演算」 およびFumioNonaka. com 「複数のフラグをひとつの整数で表す」 を参照してほしい。