- ベストアンサー
flashのムービークリップの制御方法について
- フレーム1のムービーを再生した後に、自動的にフレーム2のムービーを再生させる方法について教えてください。
- GotoAndPlayを1フレーム目に設定すると、フレーム2に直接遷移してしまいます。ムービークリップに設定しているstopが原因でしょうか?他に解決策はありますか?
- 掲示板での回答では解決せず、初歩的な質問かもしれませんが、どうすればよいか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 シーン1からシーン2へ移るのはいいとして・・・ つまり、Aを2回再生した後、Aを止めてボタンが押されるまで待ち、Bを再生したい・・・ということでいいのでしょうか? ムービークリップをループさせたい回数が決まっているなら、基本的に (ムービークリップの総フレーム数xループ回数) フレームだけ、メインのムービー側でムービークリップを再生すればいいと思いますが... 例によってmovieAが2フレーム、movieBが3フレームでできているムービークリップ、そしてボタンCがあるとしましょう。 1つのレイヤーで管理しようとするとややこしくなるので、A・B・Cをそれぞれ専用に再生するレイヤーと、もう1つ、フレームの流れを制御するレイヤーを作っておくと便利です。 テキストだけで書くと分かりにくくて申し訳ないのですが、 Aを2回再生→Aをストップ(最終フレームを表示させておく)→ボタンが押されるまで待つ→Bを2回再生→シーン1へ戻る という制御を、ざっと次のように考えてみましたが、いかがでしょう? (プロポーショナルフォントだと位置がズレてしまいますので、固定幅フォントで表示してご覧下さい) (Frame) 1 2 3 4 5 6 7 8 9 10 11 12 13 制御用 - - - - - a - - - - - - a A ● → → → ● → - - - - - - - B - - - - - - ● → → → → → - C - - - - ● - - - - - - - - ●はキーフレーム、→は全く変化しないフレーム、-は何も置かない空白のキーフレーム、aはフレームにアクションを設定することを表しています。 「制御用」レイヤーのフレーム6には前のフレームに戻るアクション「prevFrame();」、フレーム13にはシーン1に戻るアクション「gotoAndPlay("シーン1",1);」を設定します。 しかし、これではフレーム6から先に進まなくなってしまいますよね。 そこで、フレーム5に配置したボタンCのインスタンス(フレームではありません)に、ボタンが押されたらフレーム7にジャンプするアクションを記述するわけです。 ボタンが押されたらフレーム7に・・・というアクションは、 on (release) { gotoAndPlay (7); } 「A」レイヤーのフレーム5のキーフレームは、ボタンを表示している時にmovieAが表示されなくなるのを防ぐためのものです。(ボタンとmovieAが同時に表示される必要がない場合は削除して下さい) ここに置かれているmovieAのインスタンスに、次のようなアクションを設定して下さい。 onClipEvent (enterFrame) { gotoAndPlay (2); ↑クリップの最終フレーム番号です } こうしておけば、ボタンが表示されている間もmovieAの最終フレームが再生され続け、止まっているかのように見せることが出来ます。 長くなりましたが、お役に立ちましたでしょうか? 私もFlashを始めて間もない人間なんで、もしかしたら、もっとスマートな方法があるのかもしれません ^^; 何かの参考になれば幸いです。
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
まず確認させていただきたいのですが・・・ 例えば、movieAが2フレーム、movieBが3フレームでできているムービークリップだとします。 Aの2フレームを再生した後、Bの3フレームを再生したい・・・ということでしょうか? そういうことでしたら、メインのムービーで 1.フレーム1にキーフレームを設定し、movieAを置く 2.[フレームの挿入]で1フレーム挿入する 3.フレーム3にキーフレームを設定し、movieBを置く 4.[フレームの挿入]で2フレーム挿入する つまり、ムービーでムービークリップを再生するフレーム数を、AやBの総フレーム数と同じにするわけです。 編集画面でムービーを再生するとムービークリップの1フレーム目しか再生されず、一見すると正常に動いていないように見えますが、[ムービーのプレビュー][シーンのプレビュー]等ではムービークリップ内のシーケンスも再生されますので、期待通りに動いているか確認してみてください。
お礼
DPEさんありがとうございます。おっしゃる通りにやってみたのですが、また新たな疑問が・・・ 詳しく言いますとこのようにしたいのです。 シーン1 ボタンを配置→クリックしてGotoAndPlayでシーン2へ シーン2 movieAを再生→もう一度movieAを再生→ストップ→ →ボタンを押す→movieBを2回再生→シーン1に戻る DPEさんの通りにやってみましたが、movieAのフレーム数と同じにして配置すると、今度は延々とムービーがループされstopでも止めることができません・・・。上記のようにするのに、なにか良い方法はありませんか?どうかお知恵をお貸し下さい。よろしくお願い致します。
お礼
DPEさん、誠にありがとうござました!!!それにしても・・・ActionScriptを勉強しなくては・・・。わかりやすく解説していただき、とても助かりました。感謝感激です!!!!!