電子書籍の厳選無料作品が豊富!

ステージ上にMCのインスタンスが100個あるとします。
ボタンのクリックで全部のMCを1フレーム目へ移動させたいと思っています。

_root.EVENT_btn.onRelease = function() {
_root.A_mc.gotoAndStop(1);
_root.B_mc.gotoAndStop(1);
_root.C_mc.gotoAndStop(1);
_root.D_mc.gotoAndStop(1);


}
とひとつずつ書くしかないのでしょうか?
ほかに効率のよい書き方はありますか?

(注)すべてのインスタンスの親は同一オブジェクトではありません。

A 回答 (1件)

_root.EVENT_btn.onRelease = function() {


for (var i in _root) {
if (typeof (_root[i]) == "movieclip") {
_root[i].gotoAndStop(1);
}
}
};

これで_root上のムービークリップを全てフレーム1に飛ばせます
特定のだけ飛ばしたくないなら_nameとか見てif文で何とかしてください


> (注)すべてのインスタンスの親は同一オブジェクトではありません。

↑これがよくわかんないけど_root上にたくさんの名前の違う親を持ったMCがあるならもう一回回して下記みたいな感じでいけるでしょう
//--------------
_root.EVENT_btn.onRelease = function() {
for (var i in _root) {
if (typeof (_root[i]) == "movieclip") {
_root[i].gotoAndStop(1);
for (var z in _root[i]) {
if (typeof (_root[i][z]) == "movieclip") {
_root[i][z].gotoAndStop(1);
}
}
}
}
};
//---------------------------

下記みたいに_root上のMCとそのMCに入れ子になっているMCも不特定名で、最高でも_root合わせて3階層までと仮定し全てをフレーム1へ飛ばすと言うもの
_root
├mc
 │└aaa
 ├mmcc
 │└ccc
 :
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変参考になりました。

お礼日時:2006/09/28 20:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!