• ベストアンサー

swf終了後、違うswfに自動で移行したい

皆様お世話になっております。 以下の件について調べて見ましても、良い回答を見つけられず己の力の無さに悲観しております。 出来ましたら皆様のご意見を伺いたいのです。 よろしくお願いします。 【A.swf】というメニュー画面があります。 そこにあるボタンを押し【B.swf】というファイルをLoadMovieし再生します。 【B.swf】終了後、自動で元の【A.swf】の画面に戻したいのですが【B.swf】が繰り返し再生されてしまいます。 FLASH MX、Win98Seにて作っております。 宜しくお願いします。

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

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

#1です。 それでは,以下の方法が簡単ではないでしょうか。 【A.swf】レベル0 に【B.swf】を読み込むのではなく, 【A.swf】の最上レイヤーのステージ左上の角に,空もしくは透明のムービークリップを作って, そのムービークリップに【B.swf】をロードする。 【A.swf】と【B.swf】は共存しているので,命令もお互いしやすいです。 ~~~まず【A.swf】~~~ 【A.swf】の一番上に新しいレイヤーを挿入して, そのステージの左上に小さな透明なムービークリップ,もしくは空のムービークリップを作ってください。 また,そのムービークリップを選択して,下のプロパティパネルで,<インスタンス名>を設定してください。 何でもかまいませんが,この説明では「loader」としておきます。 この「loader」に【B.swf】を読み込めば良いので, 【A.swf】の【B.swf】を読み込むボタンは, ------------------------------------- on (release) { loadMovie("B.swf", "loader"); } ------------------------------------- となります。 >> A.swfの特定のシーンに戻したい ということですが,読み込んだMCからはシーンが認識できません。 なので,【B.swf】から戻ってきたとき表示させたい【A.swf】の特定のシーンには, フレームラベルを付けてください。 その表示させたいシーンの1フレーム目のタイムラインを選択。 下に表示される「プロパティ」パネルの左の方にある<フレームラベル>の部分に,名前を付けてください。 何でも良いですが,この説明では【B.swf】から戻ってくるフレームなので,「B」と付けておきます。 ~~~次に【B.swf】~~~ 【B.swf】は変更が小さいです。 最終フレームのタイムラインのスクリプトが -------------------------------- _root.gotoAndPlay("B"); unloadMovie("this"); ------------------------------- となるだけです。 わかりますよね。  //親元のムービーをフレームラベルBに進めて   _root.gotoAndPlay("B");  //自分自身のいる場所から,自分自身をアンロードする   unloadMovie("this"); ということです。 なお, 【B.swf】が読み込まれたとき, 下に隠れて見えない【A.swf】のボタンに触ってしまうと,変な動作をするかもしれません。 だから, 最初の【A.swf】のボタンのスクリプトは, ------------------------------------- on (release) { ladMovie("B.swf", "loader"); gotoAndStop("シーン ○", 1); } ------------------------------------- などとして,"シーン ○"に空白のシーンを作っておいて,【B.swf】が再生されている間だけ, 【A.swf】をその空白シーンで止めておくのも良いかもしれません。 これは,どちらでもいいです。

4173
質問者

お礼

素晴らしいご意見ありがとうございました。 無事に希望するような動きになりました! ホントにありがとうございました!!

その他の回答 (2)

noname#35109
noname#35109
回答No.3

#1&2です。 オオボケかましておりました。 #2の最後の部分,大間違いです。 >> なお, >> 【B.swf】が読み込まれたとき, >> 下に隠れて見えない【A.swf】のボタンに触ってしまうと, >> 変な動作をするかもしれません。 >> だから, >> 最初の【A.swf】のボタンのスクリプトは, 訂正箇所はこれ以下です。 ------------------------------------- on (release) { ladMovie("B.swf", "loader"); gotoAndStop(○); } ------------------------------------- などとして,○フレーム(ボタンのあるシーンの最終フレーム)に,"loader"以外は消した,空白のフレームを作っておいて,【B.swf】が再生されている間だけ, 【A.swf】をその空白フレームで止めておくのも良いかもしれません。 これは,どちらでもいいです。 と訂正します。 "loader" がシーンを越えて,つながって存在するのは不可能でした。

noname#35109
noname#35109
回答No.1

何か複雑なしくみを作られているのでしょうか? ふつうは以下のような感じでできると思います。 【A.swf】と【B.swf】のステージの大きさがほぼ等しく, ロード用のターゲットになるMCを作らなかった場合。 【A.swf】の【B.swf】をロードするボタンのスクリプト ------------------------------- on (release) { loadMovieNum("B.swf", 0); } ------------------------------- 【B.swf】の終了後(最終フレーム)のタイムラインのスクリプト ------------------------------ loadMovie("A.swf", "_root"); ------------------------------ また,【B.swf】の最終フレームには ------------------------------ loadMovieNum("A.swf", 0); ------------------------------ と書いても良いと思います。

4173
質問者

補足

ご意見ありがとうございます。 教えていただきました方法を試しました。 スムーズに動きました。本当にありがとうございます。 けれども、 誠に申し訳ありませんでした。説明が抜けていました。 A.swfの特定のシーンに戻したいと考えていました。 もしかしたら私の作り方が悪いのでしょうか・・・。 各シーンを一つずつ作り、それらをloadMovieで繋げて 行くのが一般的なのでしょうか? 質問が変わってしまって申し訳ありません。

関連するQ&A