- ベストアンサー
MCで複数のインスタンスを移動させる方法について
- MCのコードで複数のインスタンスを指定の位置に移動させたい場合、duplicateMovieClipの処理の後にクリップの中の処理が行われるため、ひとつのMCしか移動させることができません。
- 連想配列から座標の値を取得し、インスタンスを連続して移動させたい場合、「player add i」のような手法を使用する必要があります。
- 他に複数のインスタンスを移動させる方法があるかどうか、教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
状況がよく飲み込めていない部分もありますが。 いつか説明しませんでしたっけ? 配列アクセス演算子を使うと, 配列の要素にも, オブジェクトのインスタンス名にも 動的にアクセスできるので便利ですよ。 みたいな事を。 説明していなかったらすみません。 何度も同じことを書いているので, 他の方への回答と記憶がゴチャゴチャになっているのかもしれません。 具体例はこんな感じです。 _root の フレームに書くスクリプト↓。 -------------------------------- var player = 5; for (i=0; i<player; i++) { duplicateMovieClip("player", "player"+i, i); } for (i=0; i<player; i++) { this["player"+i]._x = 1+i; this["player"+i]._y = 1+i; } -------------------------------- 実際には, 変数名とインスタンス名を同じ物にするのは良くないですから, 次のようにする方が良いとは思いますが↓。 -------------------------------------- // 複製するムービークリップの数の指定 var player_num = 5; for (i=0; i<player_num; i++) { duplicateMovieClip("player", "player"+i, i); } for (i=0; i<player_num; i++) { this["player"+i]._x = 1+i; this["player"+i]._y = 1+i; } -------------------------------------- 配列アクセス演算子で, インスタンス名にアクセスする場合は, 1つのアクセス演算子で1つの階層になります。 例えば, _root ├ MC0 │ ├ MC0 │ ├ MC1 │ └ MC2 ├ MC1 │ ├ MC0 │ ├ MC1 │ └ MC2 └ MC2 ├ MC0 ├ MC1 └ MC2 というような階層構造になっていて, 「_root.MC1.MC2」 に動的にアクセスしたい場合は _root["MC" + 1]["MC" + 2] のようになります。
お礼
過去にひょっとしたら話されていたかも知れません(汗 問題は解決しました! なるほど・・・ありがとうございます。