人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

flash アクションスクリプトです

for (i = 0; i < 10; i++) {
var mc:MovieClip = _root.createEmptyMovieClip("mc"+i,i);
mc.loadMovie(images);
}

とし、他でmcの_x _y などをforループで変更したい場合はどのように記述すれば良いのでしょうか?

"mc"+i の部分をどうすれば良いのかがわかりません

for (i = 0; i < 10; i++) {
xxxxx._x = i*10;
xxxxx._y = i*10;
}

よろしくお願いします

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:FLASH MC アクション スクリプト ループ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● okuryu
●35ポイント ベストアンサー

MovieClip.createEmptyMovieClip メソッドでムービークリップを作成した場合、その戻り値が作成されたムービークリップへの参照になるので次のように _x や _y などのプロパティを定義できます。

for (var i:Number = 0; i < 10; i++) {
 var my_mc:MovieClip = _root.createEmptyMovieClip("new_mc" + i, i);
 my_mc._x = i + 10;
 my_mc._y = i + 10;
}
◎質問者からの返答

ありがとうございます。

これは理解しています。

一度このようにして表示した10個のmcを再度forループで一度に表示位置を変更するにはどうするかが知りたいのです。

例えばあるボタンをクリックすると全てのmcの_yを+10にしたいという場合はどうするかという事です。

これは動きませんがイメージとしてこのようなことをしたいということです。

for (var i:Number = 0; i < 10; i++) {

"new_mc" + i._x += 10;

"new_mc" + i._y += 10;

}

「"new_mc" + i」の部分をどうすれば良いのかを教えて下さい。

よろしくお願いします。


2 ● okuryu
●35ポイント

期待された回答でなくてすいません。

この場合は eval を使うというのはどうでしょうか。

for (var i:Number = 0; i < 10; i++) {
 var my_mc:MovieClip = eval("new_mc" + i);
 my_mc._x = i + 10;
 my_mc._y = i + 10;
}
◎質問者からの返答

ありがとうございます。

無事動きました。

var my_mc:MovieClip = "new_mc" + i;

自分ではこうやっていたのですが動きませんでした。

eval()でくくらないとダメなのですね。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ