- ベストアンサー
FlashMXでタイムラインをとばす方法について
- FlashMXのスクリプトを使用して、ボタンのアクションスクリプトで特定のフレームに移動し、タイムラインをスキップする方法について教えてください。
- また、swfファイルを一つにまとめる方法も知りたいです。
- ボタンへのアクション指定以外にも、タイムラインをスキップするための効果的な方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
”ボタンでロールアウトイベントが起きた”という情報を変数に保存しておき、この情報を元に分岐させてはいかがでしょう。 フレーム1のフレームアクションで、変数を1つ用意します。ここでは仮に、skip_flg という名前にします。 最初はロールアウトイベントが起きていないので、初期値として false を入れておきます。 ボタンには、次のようなスクリプトを書きます。 on(rollOut) { //イベントが発生したことを記録 skip_flg = true; //フレーム20に戻る gotoAndPlay( 20 ); } (↑このスクリプトをコピーして利用する場合は、各行頭のスペースを、全て半角のスペースかタブに置き換えてください。このまま使うとシンタックスエラーになります) フレーム40 では skip_flg の値を if 文で判断し、false の時は通常通り次のフレーム、true であればフレーム60 に移動するようにします。 スクリプトにしますと、次のようになります。 if( skip_flg ) { gotoAndPlay( 60 ); } ボタンでロールアウトイベントが起きていない場合は skip_flg の値は false のままですので、gotoAndPlay( 60 ); は実行されず、そのまま先のフレームに進みます。 なお、ボタンでイベントが起きなかった時はフレーム60 から先を再生しないようにするには、やはり skip_flg の値を利用して、フレーム60に if( ! skip_flg ) { stop(); } というアクションを設定してください。 ボタンでイベントが起きた場合、skip_flg の値は true になっています。よって、この stop(); アクションは実行されす、先のフレームが再生されることになります。 gotoAndPlay をボタンとフレーム40 の2箇所で実行する必要があるため、ボタンへのスクリプトだけで制御するのは無理だと思います。 長くなってすみませんでした。 不明な点がありましたら、補足してください。
お礼
ありがとうございます! その通りにやったらできました! フラグ、条件文くらいは勉強しておこうと思いました…本当に(^^; どうもありがとうございました!