• ベストアンサー

Flashで一定時間経ったら先に進める方法を

Flash5をWindows2000上で利用しています。 シーンを現在三つに分けていますが、二つ目のシーンの最後が只今50フレーム目になっています。 普通、このままだと次に三つ目のシーンへ自動的に進んでしまいますが、そうしたくなくて、一定時間が経ってから三つ目のシーンに飛ばしたいのです。 その時間分だけフレームを伸ばせば可能でしょうけども、レイヤーが相当沢山あるので、ひとつひとつ伸ばすのも大変だし、後から変更ごとがあった場合にもこのような伸ばすだけのやり方だと作業が手間で仕方ないです。 よってこのようなことができないかと思うのですが、どなたか教えてくださいませんでしょうか? 自分の所有しているTips本にはこのようなものは見当たらないので・・・。 宜しくお願い致します。

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

  • ベストアンサー
  • rightegg
  • ベストアンサー率41% (1357/3236)
回答No.1

こんばんは。 MC置けば済みます。 MCは独自に動きますよね? 最も簡単な方法だと、最後のフレームにstop();を書いた上で適当にダミー(透明)のMCを作り、そのMCのフレーム数を適当に加減します。 そしてそのMCの最後のフレームに、 _root.play(); とすればお望みの動作になります。 もちろんもっとスマートにやるならonClipEventでifで分岐しながらカウントを取れば良いですね。

acidend
質問者

お礼

遅くなりましたがどうもありがとうございました! できました! 簡単な方法なのにどうやってもバッチリになりますね。 rootではstopさせておき、そのフレームにムービークリップを仕込み、MC内で好きなだけタイムラインを伸ばして時間のコントロールをするわけですね。 そしてMCの最後のフレームで、stopさせていたrootをplayさせるわけですか。 うぅ~む、これはいいですね!

acidend
質問者

補足

追加お礼です。 しかもシーンの切り替えだけだけで使えるものでなく、シーンの途中で止めて、一定時間過ぎてまたその後のシーンの続きをスタートさせることもこれでできてしまいますね! ありがとうございました。

その他の回答 (1)

  • DPE
  • ベストアンサー率85% (666/776)
回答No.2

以前、enterFrame イベントと getTimer(); というアクションを利用して○秒間待つ処理を、紹介したことがあります。よろしければ、ご参考までに。 Flash 5 から追加された、MovieClip オブジェクトのメソッドの1つである gotoAndPlay は、従来からある gotoAndPlay とは違って、シーンの指定ができません。これは、ムービークリップにはシーンの概念がないためです。 しかし、ムービークリップからメインのタイムラインを操作するには、どうしても _root.gotoAndPlay ( MovieClip オブジェクトのメソッドの gotoAndPlay )を利用しなければならなくなります。 シーンを分けて作っている場合は、フラグを1つ用意して、時間を計るムービークリップから一定時間経ったことを知らせてもらい、それをメインのタイムライン側で if 文で判断してシーン間のジャンプをする、などの工夫も必要になるかと思います。

参考URL:
http://okweb.jp/kotaeru.php3?q=793619
acidend
質問者

お礼

仕事でとりかかることができず、遅くなりました。 ありがとうございました。参考URLの方でおこなってできました! フレームのスピードを記憶させ、それを累積させてカウンティングするわけですか。 スプリプトは色んな考え方がありますね。 大変勉強になりました。

関連するQ&A