var myHoge:Array = [1, 2, "hoge"];
var myHoge:Array = [1, ”hoge”], [2, ”hoge”]
var myHoge:Array = new Array (1, 2, "hoge");
var myHoge:Array = new Array ([1, "hoge"], [2, "hoge"]);
連想配列
var my_array:Array = new Array();
my_array[] = 2000; <- 配列の最後に「2000」という要素を追加
my_array[5] = "あ行"; <- key 5 に「あ行」という要素を追加
my_array["か行"] = ["か", "き", "く", "け", "こ"]; <- key か行 に左記の要素を追加[/as]
<span class="emphasis_r">キーには文字列しか使えない</span> ので
4行目の key 5 は自動的に "5" になる・・・?
けど、my_array[5] で要素を参照できる。
<span class="emphasis_g">右辺でkeyを記述したければ</span>
"key1" と "(ダブルクォーテーション)を用いては<span class="emphasis_r">いけない</span>。
[as]var myHoge:Array = new Array {key1:1, key2:2, key3:"hoge"};
しかし、要素を参照するときは
a = my_array["key1"]; <- 配列アクセス演算子の場合
a = my_array.key1; <- ドット演算子の場合[/as]
と、<span class="emphasis_r">配列アクセス演算子の場合は "(ダブルクォーテーション)を付けて記述しないといけない</span>。
そらそうだよね・・・"(ダブルクォーテーション)がなかったら変数になっちゃうもの・・・。
ここで面白いことを発見 8-)
[as]a = my_array["ほげ"]; <- 配列アクセス演算子の場合
a = my_array.ほげ; <- ドット演算子の場合[/as]
と全角文字を用いても可。
(Actionscript 2.0 の Flash Player 8 および Flash Lite 2.0 にて動作確認)
私個人としては
1行目は慣れているけど
2行目はビックリした。
<div class="flow2">連想配列の<span class="emphasis_b">プロパティ名</span>(キー)と<span class="emphasis_b">プロパティ値</span>(要素)を順番に参照</div>
PHPでよくやるところの
[php]foreach ($array as $key => $value) {
echo $key . ' => ' . $value;
}[/php]
をするときには
[as]for (var key:String in array) {
trace(key + " => " + array[key]);
}
という風に記述する。
Actionscriptにも foreach はあるんだけれども
key を取得することはできない(んだそうだ)。
<参考元>
polidog lab+:[ActionScript]連想配列でforとかforeachとか
多次元配列
Actionscript は配列が使いにくい。 X-(
3.0 では、大分解消されたようだけど
2.0 で多次元配列を使おうとすると、以下のよう。
[as2]var my_array:Array = new Array();
my_array[0] = new Array(“あ”, “い”, “う”, “え”, “お”);
my_array[1] = new Array(“か”, “き”, “く”, “け”, “こ”);[/as2]
とか
[as2]var my_array:Array = new Array();
my_array[0] = {0:”あ”, 1:”い”, 2:”う”, 3:”え”, 4:”お”};
my_array[1] = {0:”か”, 1:”き”, 2:”く”, 3:”け”, 4:”こ”);[/as2]
まず1階層目の配列宣言をし
2階層目をそれぞれ代入。
なんちゃぁ よーわからん・・・。
<参考元>
MdN:ActionScriptで2次元配列がつくれない >> ネストされた配列を作成する