- ベストアンサー
Flashで一定時間経ったら先に進める方法を
Flash5をWindows2000上で利用しています。 シーンを現在三つに分けていますが、二つ目のシーンの最後が只今50フレーム目になっています。 普通、このままだと次に三つ目のシーンへ自動的に進んでしまいますが、そうしたくなくて、一定時間が経ってから三つ目のシーンに飛ばしたいのです。 その時間分だけフレームを伸ばせば可能でしょうけども、レイヤーが相当沢山あるので、ひとつひとつ伸ばすのも大変だし、後から変更ごとがあった場合にもこのような伸ばすだけのやり方だと作業が手間で仕方ないです。 よってこのようなことができないかと思うのですが、どなたか教えてくださいませんでしょうか? 自分の所有しているTips本にはこのようなものは見当たらないので・・・。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 MC置けば済みます。 MCは独自に動きますよね? 最も簡単な方法だと、最後のフレームにstop();を書いた上で適当にダミー(透明)のMCを作り、そのMCのフレーム数を適当に加減します。 そしてそのMCの最後のフレームに、 _root.play(); とすればお望みの動作になります。 もちろんもっとスマートにやるならonClipEventでifで分岐しながらカウントを取れば良いですね。
その他の回答 (1)
- DPE
- ベストアンサー率85% (666/776)
以前、enterFrame イベントと getTimer(); というアクションを利用して○秒間待つ処理を、紹介したことがあります。よろしければ、ご参考までに。 Flash 5 から追加された、MovieClip オブジェクトのメソッドの1つである gotoAndPlay は、従来からある gotoAndPlay とは違って、シーンの指定ができません。これは、ムービークリップにはシーンの概念がないためです。 しかし、ムービークリップからメインのタイムラインを操作するには、どうしても _root.gotoAndPlay ( MovieClip オブジェクトのメソッドの gotoAndPlay )を利用しなければならなくなります。 シーンを分けて作っている場合は、フラグを1つ用意して、時間を計るムービークリップから一定時間経ったことを知らせてもらい、それをメインのタイムライン側で if 文で判断してシーン間のジャンプをする、などの工夫も必要になるかと思います。
お礼
仕事でとりかかることができず、遅くなりました。 ありがとうございました。参考URLの方でおこなってできました! フレームのスピードを記憶させ、それを累積させてカウンティングするわけですか。 スプリプトは色んな考え方がありますね。 大変勉強になりました。
お礼
遅くなりましたがどうもありがとうございました! できました! 簡単な方法なのにどうやってもバッチリになりますね。 rootではstopさせておき、そのフレームにムービークリップを仕込み、MC内で好きなだけタイムラインを伸ばして時間のコントロールをするわけですね。 そしてMCの最後のフレームで、stopさせていたrootをplayさせるわけですか。 うぅ~む、これはいいですね!
補足
追加お礼です。 しかもシーンの切り替えだけだけで使えるものでなく、シーンの途中で止めて、一定時間過ぎてまたその後のシーンの続きをスタートさせることもこれでできてしまいますね! ありがとうございました。