シーン移動後に移動前のmcが残って表示される

このQ&Aのポイント
  • シーン移動後に移動前のmcが残って表示される現象が発生しています。具体的には、シーン1からシーン2へ移動すると四角緑のmcが残り、さらにシーン2からシーン1へ移動すると四角緑だけが表示されてしまいます。この問題の解決方法を教えてください。
  • シーン1とシーン2での移動時に、移動前のmcが残って表示される問題が発生しています。特にシーン2からシーン1への移動時には、四角緑のmcが残り続けてしまいます。この問題を解決する方法を教えてください。
  • シーン1からシーン2への移動時に、移動前のmcが残って表示される問題が起こっています。また、シーン2からシーン1への移動時には、四角緑のmcだけが表示され続けてしまいます。この問題について、解決策を教えてください。
回答を見る
  • ベストアンサー

シーン移動後に移動前のmcが残って表示される

(gooメールを見る前にまたURLを記述してしまいました。これより前の質問は削除ください) シーン1、シーン2の構成になっています。 シーン1(home) 白枠:外部swfを読み込むmc(インスタンス名:"stage") アイコン:シーン2への移動ボタン on (release) { gotoAndPlay("info",1); } シーン2(info) 黒枠:外部swfを読み込むmc(中は透明。インスタンス名:"stage2") 四角緑(4つ):2列2行に配置。左上以外は外部swfにリンクしたmc ボタン:外部swfにリンクしたボタン information:外部swfを閉じるmc home:シーン1への移動ボタン on (release) { gotoAndPlay("home",1); } シーン2からシーン1へ移動すると、四角緑だけが残って表示されてしまいます。 更に、シーン2へ移動すると、四角緑が重複して表示されてしまいます。シーン2にあるボタンは表示されません。四角緑のmcの設定がおかしいのでしょうか? シーン1へ移動しても四角緑が表示されない方法を教えて下さい。 よろしくお願いいたします。

  • Flash
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

前回ご質問のときに書いたURL http://hakuhin.hp.infoseek.co.jp/main/as/z.html#Z_01 と, 前回も書いた MovieClip..removeMovieClip(); で解決すると思いますよ。 ムービークリップの深度を変更すると, ムービークリップはレイヤーというものに依存しなくなるので, シーンをまたいでも存在してしまいます。 だから,四角緑が重複するという一見怪現象が起こるのだと思います。 簡単なことから積み上げないと全然先に進めなくなりますから実験です。 新規ドキュメント作成して, そのドキュメントを任意の名前で任意の場所に保存してください。 そして,まずタイムラインを 2レイヤー 60フレームにしてください。 そして,下のレイヤーのフレーム30を選択してキーフレームにし, その30フレーム目に四角を描いてください。 大きさは適当で良いです。横×縦=4cm×2cm くらいで良いでしょう。 場所はステージの中央より少し左に描いてください。 するとタイムラインは次のようになると思います。                        30           60  □ レイヤー 筆・・|○                     []|  □ レイヤー 筆・・|○        []|●//////////////[]| そして,今描いた四角をムービークリップに変換して, インスタンス名を仮に 「AAA」 としてください。 その「AAA」に次のようなスクリプトを書いてください。 ---------------------------- onClipEvent (load) { this.swapDepths(5); } onClipEvent (enterFrame) { this._x += 4; } ---------------------------- 「このムービークリップの深度を 5 にして, 1フレーム進む時間ごとにこのムービークリップを, 右に 4ピクセル ずつ動かす」 というスクリプトですよね。 それでパブリッシュしてみてください。 フレームには何もスクリプトを書いていない状態なので, 勝手に,60フレームまで行くと,また1フレームに戻ってループすると思います。 ムービークリップは2つになってしまうと思います。 ムービークリップは1つしか作っていないはずですし スクリプトで「コピーしろ」という文章を書いたわけでもありません。 でも,2つになってしまいます。 60フレームから1フレームに戻るとき, 消えるのは,下レイヤーの「AAA」です。 しかし, swapDepths ですでにレイヤー2には存在しないので, 1フレームに戻っても消えないわけです。 上レイヤーの最終フレームである60フレームを選択してキーフレームにしてください。 そして,そのフレームに次のように書いてください。 -------------------------- _root.AAA.removeMovieClip(); -------------------------- そして再びパブリッシュしてみてください。 ムービークリップは2つになりません。 これを作っていらっしゃる物にも適用すれば良いのです。 「HOME」に戻るボタンに ------------------------- for (i=1; i<=4; i++) { _root["m_"+i].removeMovieClip(); } ------------------------- を追加すると, m_1 ~ m_4 は消えると思います。 実際の FLA ファイルを見たわけでも,実験したわけでもないので, 全て推測ですが,おそらく四角緑が重複して表示されることはなくなると思います。 ======================== ちなみに, 上で作った例は _root.AAA._visible = false; ではちゃんと消えません。 一度60フレームまで行ったとき, 一応「AAA」 の _visible は false になって非表示になりますが, 再び30フレームに達したとき, 下レイヤーに出没する「AAA」の _visible は true ですから, それによって, 同じインスタンス名を持つ深度5の「AAA」の _visible も true になってしまうためです。 ======================== さらにちなみに, 今思い出したのでついでに。 前々回のときに書かれていた  eval("_root.m_"+i).gotoAndStop(2); ですが,これは,  _root["m_"+i].gotoAndStop(2); と同じ意味です。 質問者様が書かれているスクリプトの場合,左辺ではないので,どちらでも良いのですが, eval関数は左辺で使えなくなりました。 「左辺にある Eval() が正常動作しない」 http://www.macromedia.com/jp/support/flash/ts/documents/fl0263.html また,ActionScript3.0 では Removed です。 「ActionScript 2.0 to ActionScript 3.0 Migration」 http://livedocs.macromedia.com/labs/1/flex/langref/migration.html だんだん eval は肩身の狭い存在になってきています。 使用には気を付けてください。 思わぬところで,また変なことになる可能性があります。 ======================== さらにさらにちなみに, 削除されたものをちらっとだけ昨日拝見させていただきました。 それを見て正直かなりビジュアル的には良いセンスはしていると思いました。 けっこう感動です。 (昨日は回答する時間がなかったので回答はできませんでしたけど。) しかし,スクリプトや動作面は… まあ,いきなり,慣れない難しいスクリプトをコピペで使われるより, 簡単なことから自分でスクリプトを書いては実験して, コツコツと知識と感を積み上げる方が良いと思いますよ。 結果的にできるのも早いかもしれません。

関連するQ&A

  • flashのMCの中にMCを入れてその中のボタンでシーンを移動したいのですができません

    flashの シーン1で大元になる5つのMCで構成された大元のMCにはonClipEvent (enterFrame)のスクリプトを記述しています。 その5つのMCの中、それぞれに、ボタンがあります。そのボタンはシーン1からシーン2に飛ばすアクションをつけているのですが、まったく反応しません。 なぜか、同一シーンのフレーム移動は反応するのですが。ボタンの記述は下記です。 on (release) { _parent._parent.gotoAndPlay("work", 1);

    • ベストアンサー
    • Flash
  • トゥーインで動くMCへ、外部swfをloadMovie

    どなたか教えて下さい。 【例】 stage(W=400XH=200)の大きさの元swf上に、W=200,H=100の大きさのMC(インスタンス名は"aa_mc")を、右端から左端へ、モーショントゥーインを使って移動します。 単純に5フレーム使って移動して、5フレーム目で左端にきて「stop」します。 そのaa_mcの下に、ボタンがあり、そのボタンに on (release){ _root.aa_mc.loadMovie("gaibu.swf"); //gaibu.swfは同じフォルダ内にあるaa_mcと同じ大きさのswf } で、読み込ませたいんですが、aa_mc自体が動いている瞬間に一瞬だけ表示されてすぐに消えてしまいます。 厳密に言えば、_rootの1フレーム目くらいで表示され、4フレーム目くらいには消えてしまうんですが、これってどうすれば直るんでしょうか? どなたか教えてください! FRASH MX 2004を使っています。 お願いします。

    • ベストアンサー
    • Flash
  • flashで、レベルの違うボタンから外部swfファイルの読み込み

    flash初心者のkiyuです。 メインのflashサイトに外部swfファイルを読み込みたいのですが、上手くいきません。 1.mcはrootにおいてあります。 2.ボタンは2つあり、1つはおなじrootの同じステージ内。そして、2つ目のボタンは違うレベルにあります。 3.同じrootにあるボタンは読み込み可能。でも、違うレベルにあるボタンは読み込み不可。 コードは、 on(release){ _root.gotoAndPlay("フレーム名"); _root.mcのインスタンス名.loadMovie("外部ファイル名.swf"); } です。 いろいろ思考錯誤をくりかえしたのですが、どうにも上手くいきません。。。 よろしくお願いします。

  • gotoAndPlayでシーンの移動

    初心者ですが、よろしくお願いします。 Windows XP / FLASH MXを使用しています。 シーン2に配置してあるボタンをクリックするとシーン1に配置しているMC内にあるフレームラベルへ移動させたいです。 ボタンに下記のように記述してみましたがうまくいきません。 on (release) { _root.movie_mc.gotoAndPlay("menutop"); } ご存知の方いらっしゃいましたら、よろしくお願いいたします。

  • 外部swfを重ならないように表示したいです。

    FLASH初心者です。 二つの大小異なるサイズの読み込み用MCを用意して、 並んでいるサムネイルをクリックすると、その読み込み用MCに大きな写真と小さな写真を外部swfで読み込むようにしたいのですが、二つの読み込み用MCが重なっているので、表示が重なってしまいます。 大きい(小さい)写真のサムネイルをクリックすると、読み込み用MCに表示されている小さい(大きい)サイズのswfが消え、なおかつ前面に外部swfを表示する方法を探しています。 サムネイルのボタンインスタンスには、 on (release) { loadMovie ("pic1.swf", "_root.change"); } としています。 読み込み用MCには、change(小さい)、change2(大きい)と名前を付けています。 どなたか知恵を貸してください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • mcの中のフレームラベルの移動

    初めまして。 当方初心者なので、よくわからないので、質問させていただきます。 外部にswfとしてフレームラベルの複数ついたものがあって、 それをmc(mcs_mc)で読み込みし、スクリプトで一定時間毎に mcに読み込んだ外部swfのフレームラベル(chapter1~chapter10)を移動させたいのですが、うまく動いてくれません。 どの用にしたらよいでしょう?よろしくお願いします。 onClipEvent(load){ this._lockroot = true; } onClipEvent(enterFrame){ setInterval( function(){ mcs_mc.gotoAndPlay("chapter2"); }, 1000); }

    • ベストアンサー
    • Flash
  • シーンからムービクリップ内のラベルへ移動

    Flash8でWEBサイトを制作中です。 大本のシーン1があり、そこにはボタンとムービークリップAを配置してあります。 そしてそのムービークリップA内のタイムラインにはラベル1があります。 そのラベル1に、シーン1のボタンから移動したいのですが、うまくいきません。 ムービークリップA内のボタンからシーン1のラベルへの移動はできるのですが、つまりその逆ができないかと頭を悩ませています。 シーン1にあるボタンには on (release) { this.gotoAndPlay("ラベル1"); } のアクションスクリプトを入れています。 他にも on (release) { _parent.gotoAndPlay("ラベル1"); } 等を入れてみましたが、全く反応しません。 大変困っています。どうぞよろしくお願いします。

    • ベストアンサー
    • Flash
  • Flash8でシーン移動ができない

    Flash8Basicを利用しています。 初歩的な質問で恐縮なのですがシーンの移動ができなくて困っています。過去ログを検索して色々試してみましたがどうしてもうまくいきません・・・。 シーン2に配置したボタンをクリックするとシーン2から「design」というシーンの「s3」というフレームに飛ぶようにしたいのです。 シーン「design」は挿入から作成したものです。 ボタンをrootに配置し、ボタンにアクション  on (release) { gotoAndPlay("design","s3");  } と記載しています。 どなたかアドバイスよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ランダムでシーンの移動ができない。

    ランダムでシーンの移動をやりたくて、 http://okwave.jp/kotaeru.php3?q=1691219 を参考にスクリプトを組んだのですが、うまくいきません。 書いたスクリプトは、 rand = Math.floor(Math.random()*6); if (rand == 0) { gotoAndPlay("シーン 7", 1); } else if (rand == 1) { gotoAndPlay("シーン 5", 1); } else if (rand == 2) { gotoAndPlay("シーン 6", 1); } else if (rand == 3) { gotoAndPlay("シーン 4", 1); } else if (rand == 4) { gotoAndPlay("シーン 3", 1); } else if (rand == 5) { gotoAndPlay("シーン 2", 1); } です。 (シーン1の一番最初に書きました。swfが読まれたらすぐにランダムが始まる予定です。。。) 現状、ランダムを全く無視して、作ったシーンの順番でシーンの再生が進んでしまいます。 スクリプトに問題があるのでしょうか。。。? よろしくお願いします。

    • ベストアンサー
    • Flash
  • MC内から_rootへのgotoAndPlay

    初めての投稿です。 宜しくお願い致しますm(__)m FlashCS3、AS2.0を利用です。 _rootで15個位のレイヤーに分け格レイヤーにMCを置き、その中でオブジェクトの制御を行うにホームページのトップ画面を作りました。 ASを1フレーム目に記述するとバグが発生する可能性があると聞いたので、 _rootのみASは2フレーム目に記述したので、ホームページのトップとしては_rootの2フレームしか使っていません。 _rootに swfの読み込み。 stop(); var loader = new MovieClipLoader (); loader.loadClip("Window_scroll.swf", _root.Window_Pic_MC); レイヤーの1つにmp3を読み込み、再生停止の制御を行うMC。 があります。 _rootにMC(1)があり、その中のMC(2)をボタンとして利用していて、 on (rollOver) { this._parent.swapDepths(95); this._parent.gotoAndPlay("n1"); } on (rollOut, releaseOutside) { this._parent.swapDepths(-1); this._parent.gotoAndPlay("n2"); } on (release) { _root.gotoAndPlay("m"); } とMC(2)に直接打ち込んでいます。 "m"が_rootの3フレームから10フレームまでで、 on (release)されるとMC(2)自体が小さくなるように モーショントゥーンで作っています。 そこで質問なのですが、 読み込んだswfの上に別レイヤーでWindowの枠があり、 MC(2)がon (release)時にswfの映像が消えて、 枠が大きくなる様にしたいのですが動いてくれません。 しかも swfも消えなく、小さくなったMC(1)を再度クリックすると 音が再度読み込まれ2重になって流れます。。。 この時微妙に枠が大きくなったり、アルファをかけてあるMC等の色が 濃くなったりするので、全てが2重になっているのかもしれません。 これはバグなのか。。。 長々とスミマセン!! 質問が多くなってしまったので、 _rootのMC(1)の中にあるMC(2)をon (release)した時、_rootにある枠が 大きくなる方法を教えて下さい。 宜しくお願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう