• ベストアンサー

コンポーネントを配列として扱う

FlashMX2004でのコンポーネントに関して質問いたします。 コンポーネントに配列としてインスタンス名をつけ、TxtInp(i)のように扱う方法はあるのでしょうか? 簡単なことなのかもしれないのですが、ヘルプ等を見ても分からず、困っております。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • DPE
  • ベストアンサー率85% (666/776)
回答No.1

配列ではありませんが、インスタンス名を固定の名前+通し番号で付けると、似たようなことができるかと思います。 ActionScript では、文字列からインスタンスや変数にアクセスすることができます。 文字列を参照に変換するには eval 関数か配列演算子 [ ] を使いますが、文法の都合上、[ ] の使用が推奨されているようです。 例えば TxtInp1 ~ 5 というインスタンスがある場合、  for( i = 1 ; i <= 5 ; i++ )  {   trace( this[ "TxtInp" + i ]._name );  } このようにループでまとめて処理することもできます。 配列演算子を使う場合、対象が階層構造になっている(例えばムービークリップ clip の中に TxtInp1 ~ 5 がある場合など)時は、階層1つごとに1組の [ ] でくくります。 例えば、絶対パス _root.clip.TxtInp1 のコンポーネントを指定する場合は、  _root[ "clip" ][ "TxtInp1" ] スクリプトを実行する階層が _root であれば、  this[ "clip" ][ "TxtInp1" ] または、自分自身( _root )までのパスを省略して  clip[ "TxtInp1" ] この中のどの表現でも、_root.clip.TxtInp1 を参照できます。 階層の考え方・this や _parent が指している対象の考え方は、普通のターゲットパスの考え方と同じです。

np3228
質問者

お礼

詳しいご説明をいただき、大変参考になりました。問題も解決いたしました。 ありがとうございました。

関連するQ&A