FLASH

シーンを跨ぐとムービークリップ内からgotoAndStopでジャンプ出来ないお話

投稿日:

flash

FLASH では長いムービーを作る時などに場面ごとにタイムラインを区切って管理できる「シーン」という機能があります。一つのシーンだけで長いムービーを作ると延々と右の方に長くなってしまいますが、シーンを作ると区切りでまた1フレームから始める事ができます。

便利ではあるのですが、ムービークリップの中のボタンからは gotoAndStop() を使った特定シーンの何フレーム目へ移動という命令が効きません。これは仕様のようです。

参考:FN0205002 - gotoAndPlay/gotoAndStopでシーンの移動ができない - Flash : テクニカルノート

フレーム移動の gotoAndStop は以下の様な指定ができます。

gotoAndStop(シーン, フレーム);

しかしこの指定は一番外側、すなわち _root のタイムラインでしか効かないのです。

ここで何が困ったかというと、フレームを延々と区切ってサウンドノベルのようなゲームを作るときにセーブ機能を付けようと思った場合です。コンテニューボタンから読んだところまでジャンプ。これが出来ないものですから、困りました。

何か代替策はないか?

上述の参考リンクを読んでいると、以下の様な記述がありました。

いくらシーンが複数あっても、実行されれば一本のタイムラインに結合される。

この点に着目しました。仮にシーンを区切らない場合(シーンを一本のタイムラインに繋げた場合)、何フレーム目という指定をしたらジャンプできるんじゃないかと?そこで以下の用にしてみました。

  • セーブボタンには、データを記憶する変数に「_currentframe」で現在のフレーム番号を記憶させます。
  • ロードボタンでは、「_currentframe」で得たフレーム番号に gotoAndStop でジャンプ。

これが当たりで、シーン名を指定しなくてもムービークリップ内からフレーム移動する事ができました。

-FLASH

Copyright© ウェブミスト(Webmist) , 2020 AllRights Reserved Powered by STINGER.