配列の使い方

ymko2009-07-25


perlでいう

foreach my $type ("manz", "souz", "pinz") {
  print "type:$type\n";
}

的なことを書こうとして適当にやってみたのがこれ

for (var type:String in { manz:1, souz:1, pinz:1 } ) {
  trace(type);
}
souz
pinz
manz

なんかハッシュっぽいな。イマイチ。
ぐぐる
Flash ActionScript入門ノート: 3.5 配列
http://oshige.com/flash/note/archives/3_actionscript/35_/
ほうほう。for in ね。

var type:Array = ["manz", "souz", "pinz"];
for (var key:String in type) {
  trace("key=[" +key+ "] val=[" +type[key] + "]");
}

key=[0] val=[manz]
key=[1] val=[souz]
key=[2] val=[pinz]

あれ?もっと微妙になった。。
いやいやもっとシンプルにだろ。

for (var type:String in ["manz", "souz", "pinz"]) {
  trace(type);
}
0
1
2

orz
 
iandeth. - 配列を for .. in でまわすワナ
http://iandeth.dyndns.org/mt/ian/archives/000040.html
むう。めんどくさいな。

var h_type:Array = ["manz", "souz", "pinz"];
for (var cnt:String in h_type) {//なぜか cnt:int だとエラー
  trace(h_type[cnt]);
}
manz
souz
pinz

ってこれは二番目のと同じか。

結果こうなりました。

var baseurl:String = "http://192.168.1.11/~hato/bin/img/";
var h_type:Array = ["man", "sou", "pin"];
for (var cnt:String in h_type) {
  
  var type:String = h_type[cnt];
  for (var i:int = 1; i <= 9; i++) {
    
    var str:String = baseurl + type + i + "u.gif";
    var img:ImageLoader = new ImageLoader(str, 30, 30);
    // ActionScript 3.0 入門 (2) - 外部イメージの読込み
    // http://yoppa.org/ssaw08.php?itemid=837
    // ImageLoader.as
    
    var sprite:Sprite;
    sprite = img as Sprite;
    
    sprite.x = i * 30;
    sprite.y = int(cnt) * 30;
    addChild(sprite);
  }
}
// 麻雀素材まつセン
// http://www4.cty-net.ne.jp/~l6000all/

// もうちょっと整理

      // 各牌
      public var img_manz:Array = new Array();
      public var img_souz:Array = new Array();
      public var img_pinz:Array = new Array();

      var baseurl:String = "http://192.168.1.11/~hato/bin/img/";
      var h_type:Array = ["man", "sou", "pin"];
      for (var cnt:String in h_type) {
        
        var type:String = h_type[cnt];
        for (var i:int = 1; i <= 9; i++) {
          
          var str:String = baseurl + type + i + "u.gif";
          var img:ImageLoader = new ImageLoader(str, 30, 30);
          
          switch(type) {
            case "man":
              img_manz[i] = img as Sprite;
              break;
            case "sou":
              img_souz[i] = img as Sprite;
              break;
            case "pin":
              img_pinz[i] = img as Sprite;
              break;
            default:
              trace("other");
          }
          
          //img_manz.push(img as Sprite);
          //var sprite:Sprite = img as Sprite;
          //sprite.x = i * 30;
          //sprite.y = int(cnt) * 30;
          //addChild(sprite);
        }
      }