Flashでボタンをクリックするとフェードイン、フェードアウトする

このQ&Aのポイント
  • アクションスクリプト初心者なのですが、ボタンをクリックすると現在のフレームのムービークリップがフェードアウトしながら、次のページのムービークリップがフェードインする方法はありますか?
  • ムービークリップがロードしたら、フェードインするところまでは出来たのですが、現在のムービークリップがフェードアウトしないため、困っています。
  • 現在のムービークリップがフェードアウトしながら、次のページのムービークリップがフェードインする方法を教えてください。
回答を見る
  • ベストアンサー

Flashでボタンをクリックするとフェードイン、フェードアウトする

アクションスクリプト初心者なのですが、 スクリプトで、ボタンをクリックすると 現在のフレームのムービークリップがフェードアウトしながら、 次のページのムービークリップがフェードインする方法を ご存知でしたら、教えていただけないでしょうか。 ムービークリップがロードしたら、 フェードインするところまでは出来たのですが、 それだと、現在のムービークリップがフェードアウトしないので 困っています。 ムービークリップがロードしたら、 フェードインするスクリプトは、 onClipEvent (load) { _alpha = 0; } onClipEvent (enterFrame) { _alpha += 2; } と記載しております。 どうぞよろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

> スクリプトで、ボタンをクリックすると このボタンがどこにあるボタンかわかりません。 また, Flash のバージョンがわかりません。 さらに, 「次のページ」とは何のことかわかりません。 ですから, ムービークリップ自体をボタン扱いにした場合, なおかつ Flash MX 以上とした場合, なおかつ 「次のページ」とは「次のフレーム」とした場合で回答します。 上記のような場合, スクリプトは次のような感じで行けると思います。 --------------------------------------------- onClipEvent (load) { // 別のところに書いていれば不要↓ _root.stop(); _alpha = 0; // 変数 flag の値を 0 に設定 var flag = 0; } //------ onClipEvent (enterFrame) { // if (flag == 0) { // もし 変数 flag の値が 0 であれば フェードイン _alpha += 2; // ただし,アルファが 100 以上になったら 100 に固定 if (_alpha>=100) { _alpha = 100; } // } else { // flag が 0 以外は フェードアウト _alpha -= 2; if (_alpha<=0) { // ただし アルファ が 0 以下になったら 次のフレームへ _root.nextFrame(); } } } //------ // このムービークリップ自体をクリックしたとき on (release) { // 変数 flag の値を 1 にする flag = 1; } ----------------------------------------------- もし, ボタンが ムービークリップ内にある場合は, そのボタンに  //------  // このムービークリップ自体をクリックしたとき 以下の, on (release) { // 変数 flag の値を 1 にする flag = 1; } を書いてください。 もし, ボタンが,ムービークリップの中ではなく, ムービークリップの外(例えば _root のタイムライン)にある場合は, スクリプトを書かれたムービークリップ自体にインスタンス名を付けて, (例えば 「my_mc」 というインスタンス名を付けて,) そのムービークリップインスタンスに向けて flag を操作してください。 --- 例 --- on (release) { // ムービークリップ my_mc 内の変数 flag の値を 1 にする _root.my_mc.flag = 1; } > 次のページのムービークリップがフェードインする方法を 次のページ(フレーム)に同様なムービークリップを用意しておけば良いと思います。  

nanan_nao
質問者

お礼

私のつたない説明で、ここまで丁重にご指導下さってありがとうございます。 やってみたら、出来ました。 どうもありがとうございました。

関連するQ&A

  • フェードイン、フェードアウトの「オバーラップ」について

    flash初心者です。 AS2.0です。よろしくお願いいたします。 ボタンでムビークリップを切り替える時、 フェードイン、フェードアウトの「オバーラップ」に したいのですが。 (A_mcがフェードアウトする同じタイミングで B_mcがフェードインする) ムービークリップが大量にあるので ムービークリップそれぞれに同一のスクリプトで フェードイン、フェードアウトを設定して効率化 したいと考えています。 フェードインは onClipEvent (load) { this._alpha = 0; } onClipEvent (enterFrame) { if (this._alpha<100) { this._alpha += 2; } } のようなスクリプトで実現できたのですが フェードアウトがわかりません。 ※イメージの関係でフェードアウトがどうしても必要になりました。 onClipEvent (unload) { } のようなタイミングで制御できればと 考えているのですが 具体的にアドバイスいただると助かります よろしくお願いいたします。

  • Flash Lite1.1でActionScriptを使用してのフェードイン・フェードアウトについて

    こんにちは。 ActionScript初心者です。Flash Lite1.1でActionScriptを使用してのフェードイン・フェードアウトについて教えて下さい。 FlashLiteではonClipEventが使えないそうだったので ムービークリップ内の1フレーム目に _alpha=0; 2フレーム以降毎に _alpha+=10; と記述すればフェードイン出来ましたが、もっとスマートにやる方法があれば教えていただけますでしょうか。 以上よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FlashMX フェードアウト

    以前、教えていただいた フェードインするスプリクト onClipEvent (load) { _alpha = 0; } onClipEvent (enterFrame) { _alpha += 1; } このあと、フェードアウトしたいのですが     どのようにしたらよいのか教えて下さい。 それと モーショントゥーインでの    フェードイン→フェードアウトのさせかたも            教えて下さい お願いします。 (FlashMX OS2000です)

    • ベストアンサー
    • Flash
  • ボタンをクリックするとフェードイン、フェードアウトする方法。

    こんにちは、スクリプトでのフェードイン・フェードアウト表示についての質問なのです。ヴァージョンはFlash MXです。 既存の質問で Flashでボタンをクリックするとフェードイン、フェードアウトする。 の応用を教えていただきたいのですが、 http://oshiete1.goo.ne.jp/qa2766651.html ステージ上にあるいくつかのボタンを押した時に、ある表示部分がフェードアウトし新たな画像がフェードインで表示するようにさせたいのですが、この時各ボタンによって表示部分を変えたい、つまり /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// ///////////////////////////表示画像//////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// ボタンA ボタンB ボタンC ボタンD ボタンAをクリック時にA画像を ボタンBをクリック時にB画像を フェードイン・フェードアウト表示させたいのです。 つまりフェードアウトした後指定したフレームへ移動させたいのです。 これを複数ボタンで分ける方法がわかりません。 ボタンが一つなら on (release) { // ムービークリップ my_mc 内の変数 flag の値を 1 にする _root.my_mc.flag = 1; } のmy_mcの部分をその画像のインスタンス名へ変えればできるのですが、ボタン数が複数になると一つしか指定できないのでこのやり方では無理です。 ムービークリップがボタン代わりであれば直接スクリプトを書いて on (release) { // 変数 flag の値を 1 にする flag = 1; } と命令することもできるのですが。 質問が分かりにくくて申し訳ありません。 もしご存じの方がおられましたら教えていただきたいです。 よろしくお願いします。

  • フェードイン・アウトについて

    アクションスクリプトを使用して、 ムービークリップをフェードインさせ 一定時間後にフェードアウトさせることは可能でしょうか? ご存知の方いらっしゃいましたら、 回答宜しくお願いします。 環境: Win XP FlashMX

  • スクリプトでサウンドのフェードイン、フェードアウト

    いつも、ありがとうございます。FLASH8です。 フレームスクリプトからのサウンドのフェードイン、フェードアウト制御についてお聞きします。 ナレーションがスタートしたらBGMをフェードアウト、ナレーションが終わったらBGMをフェードインさせたいのですが、見えないところにムービークリップを作ってムービークリップを読み込む度にサウンドレベルをプラス(マイナス)していき、それをフレームから変数を使って制御する方法で可能でしょうか?また、もっと良い方法があるでしょうか? よろしく、お願いします。

    • ベストアンサー
    • Flash
  • Flashでのアルファ値の操作

    こんばんは。 実はflashのaction scriptでのシンボルのアルファ値の変更でどうしても解決できないトラブルがあり、ご質問させて頂きました。 今ムービーの一部で以下のような流れのaction scriptがあります。 ・ムービークリップの1フレーム目  まずフレームアクションでstopしておき、画像をシンボル化したもののアルファ値をonClipEventのenterFrameで+していくフェードイン処理。 アルファが100以上になったらplayする。 ・ 〃 2フレーム目  ムービークリップのアルファ値は扱わずにgetTimer()を使った待機処理 ・ 〃 3フレーム目  1フレームの逆のフェードアウト処理 この動作をaction scriptで行わせた場合に、 アルファ値が100になった瞬間シンボルが1ピクセルか2ピクセル位「縮む」という症状が 現れてしまいました。 つまりフェードインが終わった瞬間画像の横幅が1,2ピクセル程度縮み、待機が終わり再びフェードアウトに入る瞬間縮んだ1、2ピクセルが戻り(広がり)、フェードアウトが始まるという症状です。 もちろん2フレーム目のシンボルのwidthが小さい 等ではなく、actionscriptでこの処理を行った場合のみにこの症状が現れてしまいます。 今までは無理やりモーショントゥイーンで作っていましたがどうしてもこのトラブルを解決したく、ご質問させて頂きました。ご教授よろしくお願い致します。

    • ベストアンサー
    • CSS
  • suzukaでのアルファ値操作

    flash作成ソフトsuzukaについてのご質問です。 どなたかよろしくお願いいたします。 外部jpg画像をムービークリップに読み込み、 フェードイン後 30秒停止し、フェードアウトを 行いたいのですが、方法がわからずつまづいています。 setInterval関数 か setTimeout関数のどちらかを使うのだろうなと いうぐらいまでしかわからない程の知識です。 ご指導のほど、よろしくお願いいたします。 ---------------------------------------------- // このムービークリップが読み込まれたら onClipEvent (load) { // このアルファを 30 にする this._alpha = 30; } // 1フレーム進む時間ごとに毎回実行 onClipEvent (enterFrame) { // もしこの アルファ が 100 より小さいとき if (this._alpha<100) { // このアルファを 3 加算する this._alpha += 3; // それ以外の場合(アルファ100以上) } else { // このアルファを 100 で固定 this._alpha = 100; } } ------------------------------------------ 上記のスクリプトは問題なく動作します。 上記のスクリプトのアルファ値が100に到達してから 30秒後動作する下記の内容をプラスしたいのですが、 ----------------------------------------- // もしこの アルファ が 0 より大きいとき if (this._alpha>0) { // このアルファを 3 減算する this._alpha -= 3; // それ以外の場合(アルファ0以下) } else { // このアルファを 0 で固定 this._alpha =0;} ----------------------------------------- どなたかアドバイスをよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • 立体回転運動 新たにボタンを作って一定角度だけ動かす

    お世話になります。 下記のプログラムは3Dのぐるぐる回るプログラムなのですが、 onClipEvent (load) { degree = 0; r = 100; centerx = 150; centery = 100; } onClipEvent (enterFrame) { radian = Math.PI/180*degree; this._x = centerx+r*Math.cos(radian); this._y = centery+r*Math.sin(radian)/2; this._xscale = this._yscale=this._alpha=this._y; degree += 5; } -------------------------------------------------------------------- それで、ここからなのですが、 onClipEvent (enterFrame) {  --省略-- degree += 5;  ↓ のところをまず削除して、新たにボタンを作って、そのボタンを押すと、 押すたびにある一定の角度分だけ円運動するようにしたいのですが、どうしたらいいんでしょうか? 単純にボタンを作って、 そこに on(release) { degree +=5; } と書いてもまともに動きません。 初心者なものなので、よろしくお願いします。 それと、このプログラムはムービークリップに記載されているのですが、出来たらルート画面のレイヤーにactionを作って、そこにスクリプトをまとめて書きたいと思うんですが、どうしたらいいんでしょうか?ムービークリップにインスタント名をつけて、上記のプログラムの前に、 ムービークリップインスタント名.onClipEvent (load) { --省略-- } ムービークリップインスタント名.onClipEvent (enterFrame) { --省略-- } としたら、フィールド名がありませんとエラーが出てしまいます。 長くなってしまいましたが、わかりずらい説明かとは思うのですが、重ねてよろしくお願いします。

  • 前回のフェードイン/フェードアウトの続きなんですが・・・

    昨日、sassakun様にご回答いただいたように、 ムービークリップでFLASHを作り直させて頂きました。 基本的には無事に動いたのですが、 問題点が2点ありますので、もしよろしければ教えて下さい。 1つ目は、 ボタンでMCを読み込むにつれて、swfファイルの動きが大変遅くなってしまうという現象です。 不要になったMC(階層が一つ下になった時点/最上位階層でなくなった時点)を をremoviMovieClip()で消滅させたいと思い、 各ムービークリップの45フレーム目に (45フレームまでがフェードイン/アウトで重ねたい部分なので) そのMC以外を指定してアクションスクリプトを記入したのですが、 消えませんでした。 記入したアクションスクリプトは、 mc0の45フレーム目に mc1.removeMovieClip(); mc2.removeMovieClip(); mc1の45フレーム目に mc0.removeMovieClip(); mc2.removeMovieClip(); mc2の45フレーム目に mc0.removeMovieClip(); mc1.removeMovieClip(); です。 2つ目は、 Fumio Nonaka.com様の3D_Boxをmc2にコピーしたのですが、 立方体が表示されなくなってしまいました。 これについては全くわからないのですが、 深度に関係があるのでしょうか? <利用させて頂いているアクションスクリプトの掲載URL> http://www.fumiononaka.com/Sample/3D_Box/3D_Box.html 下段のSource to download (約192KB/Flash 8形式): 3D_Box.zip 以上、2点の解決方法を教えて頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash