別のムービーの指定ラベルへジャンプするには?

このQ&Aのポイント
  • ソフトのデモムービーで、進行に応じてラベルごとに進む方法について質問です。
  • 次へ行くボタンではloadMovieNum関数を使用して次のムービーの先頭に移動しますが、前へ戻るボタンを押した時に、前のムービーの指定ラベルから再生させる方法がわからないようです。
  • このような場合、どのように対応すれば良いでしょうか?
回答を見る
  • ベストアンサー

別のムービーの指定ラベルへジャンプするには?

こんばんは。お世話になります。 今つくっているのは、ソフトのデモムービーのようなものなのですが、進行に応じてラベルごとに進むようにしています。 これが何本かあり、ボタンを押してそれぞれにジャンプするようにしています。 ここで、次へ行くボタンを押して次のムービーのアタマへ進む時は loadMovieNum("ddd.swf", 0);で移動するのですが、 前へ戻るボタンを押した時に、前のムービーの後ろのほうに配置したラベルの位置から再生させたい時にはどうしたらいいか困っています。 そのまま続けて下記のように書いてもダメなようなのですが、なにか良い手はありませんでしょうか? そもそも、こういった作り方はしないものなのでしょうか? on (release) { loadMovieNum("ddd.swf", 0); gotoAndPlay("ラベル3"); } すみませんが、よろしくお願いします。

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

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

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

どう考えても無理です。 少なくとも障壁が2箇所あります。 loadMovieNum("ddd.swf", 0); この 0 は,_level0(レベル 0) です。つまり _root です。 _level0 なんかに読み込んだらその読み込んだムービーによって,読み込むムービーが全て乗っ取られます。 変数の値も,インスタンス名も,当然スクリプトも, 以前 _level0 にあったものは全て抹消されて,新たなるムービーに乗っ取られます。 _level1 なら,_root が乗っ取られることはないので, なんとかなるとは思います。 たとえば, on (release) { _root.flag = 1; loadMovieNum("ddd.swf", 1); } として, _root に flag(フラグ) という変数に 1 という値を入れ, _level1 に ddd.swf をロードします。 ddd.swf の フレーム1 に if(_root.flag == 1){ this.gotoAndPlay("ラベル3"); } とすれば, _root の変数 flag の値が 1 の時だけ, "ラベル3" に gotoAndPlay します。 それ以外の時は,何も起こらず,普通にアニメーションします。 しかし, 上は理論上うまく行くだけで実際問題は "ラベル3" には飛ばないと思います。 これは loadMovie してもしなくても,関係ありません。 loadMovie しない普通の ムービーの フレーム1 に gotoAndPlay("ラベル3"); と書いたとします。 その SWF をWebを通してエンドユーザーが見たとします。 その見た瞬間 "ラベル3" までムービーがロード(メモリ上にダウンロード)されていることはまずあり得ないので, Flash としては "ラベル3" なんてものは見つけることができないため, 「???」状態になってストップします。 だから,「Now Loading ...」 のような画面を作って, そのムービーが全てロードされるのを待ってから, if判定で flag が 1 であれば "ラベル3" へ gotoAndPlay させるようにしなければなりません。 もしくは,Flash MX 2004 以降をお持ちでしたら, _root 上に MovieClipLoaderインスタンス を生成して, その MovieClipLoader に新しいムービーが読み込まれ次第, 表示させるとかです。 (エンドユーザー Flash Player 7 以上が必要。) 「SWF、JPEGファイルを読み込みたい(FlashMX2004以降) 」 http://hakuhin.hp.infoseek.co.jp/main/as/import.html#IMPORT_03 MovieClipLoaderクラスについて http://www.fumiononaka.com/TechNotes/Flash/FN0501003.html しかし,MovieClipLoader が _level1 に使える物かどうかやったことがないのでよくわかりません。 普通は _level ではなく ムービークリップ をターゲットとして読み込むときに使うものだと思いますから。 以上のようにすると, 普通に考えて,予測できる2つの障壁をなんとかクリアーすることができます。 私は実際にやってみていません。 実際にしてみるには,実際のデータを元に,アップロードしてみないとわからない面もあります。 上の2つの障壁があることは確かですが,実際にやってみると他にまだ障壁があるかもしれません。 ===代替案======================== >> 次へ行くボタンを押して次のムービーのアタマへ進む時は >> loadMovieNum("ddd.swf", 0);で移動するのですが、 →次へ行くボタンを押して次のムービーのアタマへ進む時は  そのまま loadMovieNum("ddd.swf", 0); で移動する。 >> 前へ戻るボタンを押した時に、 >> 前のムービーの後ろのほうに配置したラベルの位置から >> 再生させたい →前へ戻るボタンを押した時は  "ラベル3" 以前のフレームをカットしたSWF(仮称 ddd2.swf)  を作成し loadMovieNum("ddd2.swf", 0); でロードする。 というのはどうでしょうか。 往き道と帰り道を違う物にするのです。 aaa.swf → bbb.swf → ccc.swf → ddd.swf → eee.swf aaa2.swf ←bbb2.swf ←ccc2.swf ←ddd2.swf ←┘ 作成は手間ですが, そんなに頭や気を遣う必要はなくなります。

tsubasa888
質問者

お礼

詳細なご回答ありがとうございました。 バージョンも書かずにすみません。バージョンは8でした。 前にDirectorを使っていて、こちらだと簡単にそういう事が出来ていたので、とまどってしまいました。お書きいただいた方法試してみたいと思います。本当にありがとうございました。

tsubasa888
質問者

補足

sassakunさまのご回答を手がかりに、また色々調べてみましたら、なんとか解決しました。下記の質問サイトに、ほとんど同じ質問をした方がいたようで、、。 完全にロードされないとラベルには飛ばないというところも盲点でした。ありがとうございます。 http://www.flash-jp.com/modules/newbb/viewprint.php?order=ASC&topic_id=2199&forum=11&PHPSESSID=e68f0cabc73ff30d7ae2320ee3d00389

関連するQ&A

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

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

    • ベストアンサー
    • Flash
  • 外部ファイルのフレームラベルにリンクをさせたい。

    こんにちわ。 色々、探してみましたが、頭がこんがらがってしまい、時間ばかりが過ぎて行くので質問させていただきます。 外部ファイルのフレームラベルにリンクをさせたいのですが、どなたかご存じの方ご教授ください。 flame.swfを読み込んだときは自動的にcontents1.swf→contents2.swfと進み、ボタンをクリックすると 指定されたフレームラベルにリンクさせたいのです。 色々試してみたのですが、うまく外部ファイルが読み込めなかったりボタンが機能しない状態です。 flame.swf contents1.swf contents2.swf flame.fla  kazari   ボタンの飾りグラフィクが置いてある。  button1-1 1-1(contents1.swf内1-1フレームラベルにリンクするボタン)  button1-2 1-2(contents1.swf内1-2フレームラベルにリンクするボタン)  button2-1 2-1(contents2.swf内2-1フレームラベルにリンクするボタン)  button2-1 2-2(contents2.swf内2-2フレームラベルにリンクするボタン)  mytarget mytarget(movie clip。ここにcontents1.swfもしくはcontents2.swfを読み込ませる) 1 フレーム目のアクションスクリプトに stop(); button1-1のボタンスクリプトに on (release) { gotoAndPlay("1-1"); /コメント:フレームラベル1-1にボタン飾りがあるため同じシーン内の「1-1」に行くように/ } 1 フレーム目のmytargetアクションスクリプトに onClipEvent (load) { loadMovieNum("contents1.swf", 1); } フレームラベル1-1のmytargetアクションスクリプトに onClipEvent (load) { this.mytarget.loadMovie("contents1.swf" , 1); flg='contents1.swfのフレームラベル'; } contennts1(2).fla 1フレーム目のアクションスクリプトに stop(); gotoAndPlay(flg); 環境:Max OS 10.3.6 Flash8

    • ベストアンサー
    • Flash
  • ムービークリップ内に配置した別のムービークリップの再生

    こんばんは。 ムービークリップ内に配置した別のムービークリップを ボタンを押したときに常に1フレーム目から再生するように させたいのですが。一度読み込んでしまったら 最初に戻すことができません。 どうしたらいいのでしょうか? on(release){ French.gotoAndPlay(1); } とかしてみたけど駄目でした。 初心者で申し訳ありませんがよろしくお願いします。

    • ベストアンサー
    • Flash
  • 【flash】ムービークリップ内のフレームへのジャンプ

    flashの初歩的な質問で申し訳ないのですが、 ムービークリップ内でgotoが効きません。 「sumple」というムービーシンボルの中に配置したボタンシンボルを押し、 同じ「sumple」の中に名づけてある「a」というフレームに飛びたいのですがどうすればよろしいのでしょうか? 現状、ボタンを押したら行き先がわからないのか頭に帰ってきます。 アクションは on (release) { gotoAndPlay("a"); } です。 どこに何を足したら…いいんでしょうか… よろしくお願いします

  • loadMovieNumでの指定方法

    Flash初心者です。よろしくお願いします。 現在レベル0(_root)にMCをつくり”gaib”というインスタンス名をつけました。 レベル”0”にボタンがあり、クリックするとレベル1にswfファイルが読込まれるようになっています。そしてこのswfファイルにはボタンが置いています。 このレベル”1”のボタンを押すとレベル”0”のMC(gaib)にswfを読込むようにしたいのですが、どのように指定すればよいかわかりません。 試したのは、レベル1のボタンに on(release){ _root.gaib.loadMovieNum("swf/001.swf",0); } というのと、 on(release){ _root.loadMovieNum("swf/001.swf",0) _level0.gaib; } しかしだめでした。 どなたか詳しい方、ご指導お願い致します。

  • ロールオーバーするとラベルにジャンプし、ロールアウトするまでストップ

    ボタンAとボタンBの2つがありまして、 ボタンAにロールオーバーすると、指定したラベルにジャンプし、ボタンAの位置にボタンBがきます。 オーバー後少し進み、ロールアウトするまでストップしたいのですが、どうすれば良いのでしょうか? ボタンAには ──────────────────── on (rollOver) { gotoAndPlay("ボタンBの所のラベル"); } ──────────────────── と書いてあり、ロールオーバー時にきちんとラベルにジャンプしてくれます。 ボタンBには、 『 buttonB 』と名前を付け ──────────────────── on (release) { getURL("http://www.URL"); } ──────────────────── と記載してあり、別ページに飛ばしております。 該当のラベルまでジャンプした後、10フレームくらい進んだフレームにActionScriptをかけておりまして、 ──────────────────── stop(); clearInterval(stopID); var mov_stop = 4000; stopID = setInterval(function () { play(); clearInterval(stopID); }, mov_stop); } ──────────────────── となっており、ここのフレームでロールアウトするまでストップさせたいのですが、どうすればいいのか分からず困っております。 分かり難い文章で申し訳ないのですが、どなたか詳しい方ご掲示お願い致します。

    • ベストアンサー
    • Flash
  • 外部SWFを読み込み、指定したラベルから再生したい。他

    Flash8を使用し、Win/Mac両方で作業しています。 ActionScriptは基本をどうにか理解しつつあるレベルです。よろしくお願いします。 「base.swf」「submovie.swf」の2つのファイルを用意し、 base.swfのステージに、 ・空のムービークリップ(インスタンス名:main) ・ボタン(インスタンス名:buttom) を配置し、ボタンに下記アクションを記述しました。 on (release) { loadMovie("submovie.swf", "main"); } この記述で、「submovie.swf」が「main」に表示されるのを確認しました。 そして、ここからが質問なのですが、 1.どこにも「stop」アクションを仕込んでいないはずなのに、LoadMovieで読み込んだ「submovie.swf」が1フレーム目で停止してしまいます。 何か別の記述が必要なのでしょうか。 2.ボタンクリックにより、「submovie.swf」内の指定したフレームを再生したいのです。 「submovie.swf」には「first」「second」「third」の3つのラベルを設定しています。 たとえば、「buttom」インスタンスをクリックした際に、「submovie.swf」内「second」ラベルを再生したい場合、どのように記述すればよろしいでしょうか。 また、もし上記の条件でラベルが使用できない場合、何か代替となる方法があるでしょうか。 不足している情報があれば追記します。よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • ムービークリップ内のボタン

    フラッシュ初心者です。 アクションスクリプトがうまく動かず困っています。 シーン1にムービークリップ1(インスタンス名:mc1)とムービークリップ2(インスタンス名:mc2)が置いてあります。 mc2の中にはボタンAを配置してあり、ボタンAをクリックすると、mc1のフレームラベル(B)に飛ぶような制御をしたいです。 ボタンAに記述してあるスクリプトは以下です。 on (release) { this._parent.mc1.gotoAndplay("B"); } しかしクリックしても全く動きません。 絶対パスで指定してもダメでした。 ちなみに、ためしに、mc1ではなく、シーン1上のフレームラベルに 飛ばすように記述したら普通に動きました。。 何か記述間違いがあるのでしょうか? 分かる方がいましたら教えてください。 お願いします。

  • 戻るボタンについて(名前付きアンカー?)

    FLASHで制作した戻るボタンではなくて、普通の戻るボタンで、戻るべきところに戻ってくれません。正式には、loadMovieNum("aaaa.swf",0); から、戻るを押すと、なぜか、戻るべきところに戻りません。 名前付きアンカーで戻れるらしいのですが、フレームにanaka-とつけて、ラベル種類のところをアンカーにし、アクションにgotoAndPlay("anka-"); と書きました。ここまでで、何か間違いがあるのでしょうか?素人なので、質問の意味がわかりづらいと思いますが、ヒントサイトでもいいので、わかる方、お願いします。

  • gotoAndPlayでシーンの移動

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

専門家に質問してみよう