重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

FLASH8を使用しています。
FLASHを使って、ホームページのメニューを作りたいと思っています。
そこで、SONYのホームページのようにボタンを押すと、メニュー画面がスクロールして表示され、もう一度ボタンを押したらフレームが逆再生されてメニュー画面が消えるようにしたいのですが、どのようにすればよいでしょうか??

初心者なりに、prevFrame()を使って頑張ってみたのですが、うまくできませんでした。

aaa=0;

if(aaa%2){
nextFrame();
}else{
prevFrame();
}

とし、ボタンアクションで
on(press){
aaa=aaa+1
}

としたらうまくいくかなぁ~と考えてみたのですがうまくいきませんでした(涙)。初心者には荷が重すぎました・・・。

デバッガでエラーはでないのですが、動きませんでした。
もし、「ここはこうしたほうがいい」、「この関数では無理」などアドバイスをお願いします。

A 回答 (1件)

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;

と記述することで可能です
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
実際に試してみたところ、うまく動作させることができました。
まだまだ、FLASHは初心者なので、変数とaaa%2を使って無理矢理考えついた方法にきちんとどこが悪いのか説明付きで解説していただき大変勉強になりました。

お礼日時:2006/11/15 20:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!