- 締切済み
逆再生の方法について ActionScript
FLASH8を使用しています。 FLASHを使って、ホームページのメニューを作りたいと思っています。 そこで、SONYのホームページのようにボタンを押すと、メニュー画面がスクロールして表示され、もう一度ボタンを押したらフレームが逆再生されてメニュー画面が消えるようにしたいのですが、どのようにすればよいでしょうか?? 初心者なりに、prevFrame()を使って頑張ってみたのですが、うまくできませんでした。 aaa=0; if(aaa%2){ nextFrame(); }else{ prevFrame(); } とし、ボタンアクションで on(press){ aaa=aaa+1 } としたらうまくいくかなぁ~と考えてみたのですがうまくいきませんでした(涙)。初心者には荷が重すぎました・・・。 デバッガでエラーはでないのですが、動きませんでした。 もし、「ここはこうしたほうがいい」、「この関数では無理」などアドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- suzuki-_-
- ベストアンサー率77% (152/195)
aaa=0; if(aaa%2){ nextFrame(); }else{ prevFrame(); } 上記はフレームに書かれていると推測しますが、 それのみだと、フレームを通った瞬間(そのフレームのみ)でしか実行されません なので、そのフレームで実行した後はいくら aaa の値を変えても、 記述されたif文の内容は実行されません aaa=0 は初期化として常時実行する必要はないので、 if文だけ常時通るようにスクリプトを加える必要があります 以上を踏まえた上で下記のように変更すると解決すると思われます aaa = 0; this.onEnterFrame = function() { //この中にあるものはfpsに合わせて常時実行 if (aaa%2) { nextFrame(); } else { prevFrame(); } }; onEnterFrameは、他にも記述されていると後から読み込まれたものが上書きされてしまうので、たくさん記述することがあるなら、必ずひとまとめにするようにしましょう 逆に途中から常時実行の内容を変えたいのであれば、変えたいところに新しくonEnterFrameの内容を記述すればOKです また、常時実行を削除したいならば、 delete this.onEnterFrame; と記述することで可能です
お礼
回答いただきありがとうございます。 実際に試してみたところ、うまく動作させることができました。 まだまだ、FLASHは初心者なので、変数とaaa%2を使って無理矢理考えついた方法にきちんとどこが悪いのか説明付きで解説していただき大変勉強になりました。