普段あまり使わないのだけれど、Arrayは・・・
var array:Array = new Array(0,2)
とやっても生成できます。で、たまたま横着してこの方式で・・・
array = new Array(0)
とやって、array[0] == 0 になると思ったら、要素ゼロの配列になってしまい、しばらく「何でだろうな??」とはまってしまいました。ヘルプ通りの仕様なんですけどね。
var array:Array = new Array(0,2)
trace(array,array.length) >> 0,2 2
array = new Array(0)
trace(array,array.length) >> 0
まあこんなコトで躓くこともないと思いますが、自分ではまたやりかねないのでメモ。
素直にこうすれば、何の問題も起きないんですけどねw。
array = [0]
trace(array,array.length) >> 0 1
[追記]2011.5.11
野中さんから情報いただきました。初期化は[]を使う方が速いらしいです。
表示リストのindexをArrayで管理していて、はまった罠。
var list:Array = [7,8,9,10]
list.sort()
trace(list)
—10,7,8,9
var list:Array = [7,8,9,10]
list.sort(Array.NUMERIC)
trace(list)
—7,8,9,10
Array.sort()ってデフォルトだと文字扱いでソートになるのね。いつもインスタンス名とかでsortするときは、必ず「mc00」「mc01」とか文字列(主にインスタンス名など)に使ってて、あまり数値そのもののソートをしたことないってことか…。お恥ずかしい話でした(^^;。
※一応、カテゴリをAS3.0にしているけど、AS2.0でも同じです。
[追記]2011.5.10
Arrayについて整理するため、カテゴリを追加してタイトルも変更しました。
AS,Objective-C,Javascript,その他諸々の備忘録