• 締切済み

逆再生の方法について ActionScript

FLASH8を使用しています。 FLASHを使って、ホームページのメニューを作りたいと思っています。 そこで、SONYのホームページのようにボタンを押すと、メニュー画面がスクロールして表示され、もう一度ボタンを押したらフレームが逆再生されてメニュー画面が消えるようにしたいのですが、どのようにすればよいでしょうか?? 初心者なりに、prevFrame()を使って頑張ってみたのですが、うまくできませんでした。 aaa=0; if(aaa%2){ nextFrame(); }else{ prevFrame(); } とし、ボタンアクションで on(press){ aaa=aaa+1 } としたらうまくいくかなぁ~と考えてみたのですがうまくいきませんでした(涙)。初心者には荷が重すぎました・・・。 デバッガでエラーはでないのですが、動きませんでした。 もし、「ここはこうしたほうがいい」、「この関数では無理」などアドバイスをお願いします。

みんなの回答

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.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; と記述することで可能です

tanaka111
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FLASHでHPのメニュー画面

    FLASHを使って、ホームページのメニューを作りたいと思っています。 そこで、SONYのホームページのようにボタンを押すと、メニュー画面がスクロールして表示され、もう一度ボタンを押したらフレームが逆再生されてメニュー画面が消えるようにしたいと思い下記のように作成しました。 (suzuki-_-さんの方法を参考にして作らせていただきました。QNo.2540039) MC1に this.onEnterFrame=function(){ if(aaa%2==0){ this.prevFrame(); }if(aaa%2==1){ this.nextFrame(); } } ボタン1に on(press){ aaa=aaa+1; } としていました。 これでうまく動いていたのですが、ここでボタン2を作り、もう一つ同様のアクションをするものを作ったのですが、この場合MC1が表示されている場合、MC1を引っ込めてから、MC2を実行しようとして、以下のようにしたのですがうまく動作しません。どのようにしたらいいかアドバイスをお願いします。 MC1 this.onEnterFrame=function(){ if(aaa%2==0){ this.prevFrame(); }if(aaa%2==1){ this.nextFrame(); } } ボタン1 on(press){ aaa=aaa+1; if(bbb%2==1){ bbb=bbb+1; } } MC2 this.onEnterFrame=function(){ if(bbb%2==0){ this.prevFrame(); }if(bbb%2==1){ this.nextFrame(); } } ボタン2 on(press){ bbb=bbb+1; if(aaa%2==1){ aaa=aaa+1; } } これをメインのフレームに配置したのですがうまく動作しませんでした。 一応調べてみると、変数は定義したMCの中だけでしか有効ではないらしいということがわかりました。どうすれば、目的の動作が動くか教えていただきたいです。よろしくお願いします。

  • ActionScript

    ActionScript を教えてください。 ドキュメント全体を透明なボタンでおおい、 画面をクリックすると次のフレームに進み、 左から右にマウスをドラッグすると前のフレームに戻るようにするにはどうしたらよいでしょうか? 進む方は、 on (release) { nextFrame(); } で、できたのですが、戻る方が全くわかりません。

    • ベストアンサー
    • Flash
  • nextFrameで最後のフレームの後先頭に戻る

    FLASH8 AS2.0 先ほど質問を自己解決しながら、 すぐに壁に当たってしまいました; 度々申し訳ありません。 現在フォトギャラリーを作製していまして、 以下のASでムービークリップ内のフレーム移動することが出来ました。 on (release) { _root.main.nextFrame(); } 例えばムービクリップ内の10フレーム全てnextFrameで移動した後、 もう一度ボタンをクリックするとムービークリップ内の先頭(1フレーム目)に 戻るにはどうしたらよいのでしょうか。 また、同様にprevFrameを用いて1フレーム目まで移動し、 もう一度押すと10フレーム目に移動できるようにするにはどうしたらよいでしょうか。 どなたか分かる方教えて頂けないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Flash
  • フレームのスクロールを出さない方法(ドリウィ&Flash)

    こんにちは。初めてちゃんとしたHPをドリームウィーバーで 作っているところなんですが、フレームを3つにわけて、 一番上のフレームにflashで作ったメニューボタンを入れて、 コンテンツが真ん中のフレームに来るように設定して作っています。 ボタンの機能など、アクションはきちんとできているのですが、 一番上のフレームにflashのメニューボタンを当て込んだら フレームサイズと高さは変わらないのに、 スクロールバー&空欄ができてしまうんです。 フレームの行を1相対にすると 上下にすごい空欄が出てきてしまうんです。 逆に真ん中のフレームは下に空きができてしまいます。 一番上のフレームの高さ(行)を45pix、 真ん中のフレームの高さ(行)を316pixに設定してます。 当て込んでいるflashは メニューボタンは42pix、コンテンツは316pixの高さです。 どうしたらいいのでしょうか? 環境はMac OS9、Dreamweaver4、Flash5です。 よろしくお願いします。

  • ActionScript3.0について教えていただきたいです。

    ActionScript3.0について教えていただきたいです。 下記の添付画像を参考にしていただくと理解しやすいかと思います。 FLASH CS4にて、フレームの移動を行いたいのですが、どうも上手くいきません。 「メニュー画面」でボタンを選択し、「サブメニュー画面」を表示するところまではできるのですが、 緑のボタンをクリックして、「目的のページ」に移動する事ができません。 「メニュー画面」から「サブメニュー画面」へは、 ボタン名.addEventListener(MouseEvent.CLICK,任意の関数名); function 任意の関数名(e:MouseEvent):void{ gotoAndStop(ページ数); } というスクリプトで動きますが、「サブメニュー画面」から「目的のページ」への移動ができない状況にあります。 どなたかわかる方いらっしゃいましたら、是非教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • actionscript2.0について

    先日より、Flashを始めたばかりのド素人です。 現在、Flash8 actionscript2.0 WINXPにて、ホームページ用のボタンを制作しているのですが、 ボタンシンボルからオーバーを選択して、MCをダブルクリックし、ロールオーバー時にラインが出てきて止まるまでは、出来ました。 その止まった状態から、ロールアウト時に逆戻りさせて、また元の位置に戻して停止させたいのですが、どのような 指示を出せば良いか、いろいろと調べてみましたが、全くわかりません。 フレーム数は5で12.0fpsです。 状況説明すらわかりにくく申し訳ありませんが、教えていただきたいと思います。 宜しくお願い致します。

  • スクロールメニュー

    スクロールメニューを作成し、スクロールしているメニューボタンを押したときに、同じ画面上に画像を表示したいのですが、表示されません。 下のURLのフォトアルバム06 (コメントなし)のようなものをつくろうとしています。 http://flash-bucks.com/flash/album/index.html ムービーになっているボタンを押したときに同じ画面上に画像を表示する方法を教えていただきたいです。

    • ベストアンサー
    • Flash
  • アニメーションするロールオーバーにリンクを張りたい

    http://www.geocities.jp/peperon44/peach.html←の様にアニメーションしてリンク先が出てくるロールオーバーを作っています。 http://www.geocities.jp/peperon44/peach.fla←に作っているファイルを置きましたが 一番上の階層にシンボル化したボタンを置き、その下の階層ですべてのフレームアニメーションをさせていますが、1フレーム目に this.stop(); //マウスカーソルがロールインした this.onRollOver = function() { //ロールオーバー開始 rollover = true; }; //マウスカーソルがロールアウトした this.onRollOut = function() { //ロールオーバー終了 rollover = false; }; //フレームが進む度に実行 this.onEnterFrame = function() { if (rollover) { //次のフレームへ進む(最終フレームでは無視される) this.nextFrame(); } else { //手前のフレームに戻る(先頭フレームでは無視される) this.prevFrame(); } }; を入れ大ボタンから出てくる紹介、名前、名簿をそれぞれフレームアニメーションにさせ、シンボル化させて各オブジェクトに on (release) { getURL("name.html", "_foot"); } を入れていますが、指定のURLにリンクがかかりませんのでボタンに反応してくれません。記述が間違っているのか、スクリプトを書く場所を間違えているのだと思います。 このつくりだと一番上の階層に on (release) { getURL("name.html", "_foot"); } と入れると指定のURLにリンクされますが、それでは3つリンク先を分けられないので大ボタンから3つの文字がアニメーションして出てくる意味がありません。大ボタンから出てくる小ボタンにリンクを張るようにしたいです。 FLASHに関してはまだまだの未熟者ゆえ解らないです。何方かお助け下さい。 環境はWindowsXP ソフトはFLASH8です。

    • ベストアンサー
    • Flash
  • スクロールの色を変える方法

    某お方やご回答下さった方々のおかげで、無事サイトを立ち上げる事が出来ました! これまで、スタイルシートマネジャーで何とか「リンクの下線を消した」り、「マウスがリンク上にきた時ボタンの色が変わる」は出来ました。 ただ、唯一「スクロールバーの色を変える」だけが上手くいきません。 下記の方法で試しましたが・・・ http://www.wsb.jp/hpb/kowaza/scrol.htm#02 何故か設置しているメールフォームの小さなスクロール(相手がコメントを入力する部分)の色が変わり、肝心のTOP画面本体のスクロールの色は変える事が出来ません。 初心者なので、なるべくソースはいじらずに変えたいのですが、方法はありますか? 当方のサイトはフレームのTOP画面で、左にメニュー、右にTOPイラストがでーんとあるスタイルの同人サイトです。 ホームページビルダー15を使用しています。

  • ホームページのフレームについて

    ホームページビルダーver8でホームページを作りたいのですが、どうしたら良いのか分からなくなってしまいました。 サイト名を上のところへ置いて、下の部分にメニューを置いて、真中の部分をスクロールして見せたいのです。 そのためにはフレームを使うのだと思うのですが、そこだけをスクロールさせるにはどうすればいいのでしょうか? 今までパソコンでは年賀状ぐらいしか作ったことがありません。 初心者にも分かりやすく教えていただきたいのですが、よろしくお願いいたします。