- ベストアンサー
ムービークリップを全て消去したい・・・
タイトルどおりの悩みなのですが、attachMovieで複製したムービークリップを削除したいのですが、removeMovieClipでは一つずつしか消去が出来ず、プログラムがかさばってしまって大変見づらくなってしまいました。 教えて頂きたいのですが、たくさん作られたムービークリップを一括で削除する方法は無いでしょうか。(ありえないと思いますが、AllMovieClipDelete()みたいな・・・) for文で連続して消せばいいのかもしれませんが、一つ一つの名前がバラバラなので、それも出来ず、少し行き詰っています。 ご教示、よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
for..in 文が使えると思います。 次のスクリプトは, 新規ドキュメントを作成して,フレーム1 に書くだけのもので, 上半分以上は本題とは関係ありません(検証実験には関係ありますが)。 ////////////////////////////////////////////////////////////// // -------適当なMCを適当に作成(関係なし)--------- function makeMC(_mc) { _mc._x = Math.random()*(Stage.width-100)+50; _mc._y = Math.random()*(Stage.height-100)+50; _mc.beginFill(0x999999, 50); _mc.lineTo(0, 0); _mc.lineTo(0, 50); _mc.lineTo(50, 50); _mc.lineTo(50, 0); } _root.createEmptyMovieClip("OK", _root.getNextHighestDepth()); makeMC(_root.OK); _root.createEmptyMovieClip("Web", _root.getNextHighestDepth()); makeMC(_root.Web); _root.createEmptyMovieClip("Oshiete", _root.getNextHighestDepth()); makeMC(_root.Oshiete); _root.createEmptyMovieClip("goo", _root.getNextHighestDepth()); makeMC(_root.goo); _root.createEmptyMovieClip("Category", _root.getNextHighestDepth()); makeMC(_root.Category); _root.createEmptyMovieClip("Flash", _root.getNextHighestDepth()); makeMC(_root.Flash); // // --------以下が本題------------------- for (var my_mc in _root) { if (typeof (_root[my_mc]) == "movieclip") { _root[my_mc].removeMovieClip(); } } ////////////////////////////////////////////////////////////// 本題の部分を, コメントアウトしたり,コメントアウトから外したりすれば,動作検証できます。 Google 検索「for..in Flash」 http://www.google.co.jp/search?hl=ja&q=for..in+Flash&lr=lang_ja
お礼
forにはこんな使い方もあったのですね。 大変勉強になりました。ありがとうございました。