• ベストアンサー

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

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

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

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ムービークリップ内のフレームに書いてループさせるのです。 onClipEvent(enterFrame) はムービークリップに書くスクリプトでしょう。 したがって onClipEvent(enterFrame) は単独で存在することができませんから, 必ずムービークリップが必要となります。 つまり結局,ムービークリップ内のループ処理を簡略化するためにできたのが onClipEvent(enterFrame) だと私は解釈しています。 ご質問からは,ムービークリップの状態や階層構造がよくわかりませんが, 無難に行くには,そのアルファを変える ムービークリップ の中に,新規でレイヤーを追加し, そのレイヤーに見えないような小さなムービークリップ(または空のムービークリップ)を作成し, その小さなムービークリップ内のフレームを3フレームにして フレーム1 には //../:_alpha=0; または _parent._alpha=0; フレーム2 には //../:_alpha += 10; または _parent._alpha += 10; フレーム3 には //if (../:_alpha>=100) { または if (_parent._alpha>=100) { stop(); } else { gotoAndPlay(2); } と書くと,うまく行くと思います。 見えないような小さなムービークリップ から見ると, アルファを変えたいムービークリップは親(_parent)ですよね。 携帯特有のスラッシュシンタックスによるパスの書き方で統一したい場合は, // の付いた注釈行のようにパスを書いてください。 stop(); で,無駄な処理を続けることも省けますから, 考えようによっては, ムービークリップ内ループの方が onClipEvent(enterFrame)  より扱いやすく便利な場合もあると思います。 MovieClip.onEnterFrame = function(){} にはかなわない気がしますが。 ====================================== 言語形態は今の ActionScript と全く違いますしムービークリップ内フレームループではなく,_root のループですが,考え方は同じですね↓。 FLASH4スクリプト ストップウォッチ http://fpower.org/old/f4timer.htm こちらも同じ↓。 Duplicate MovieClip http://fpower.org/old/f4duplicate.htm 面白い過渡期のサイトです。 Flash 5 で Flash 4 のスクリプトとサーバサイド言語を使ってカウンタを設置する方法が書いてあります。 Flash 5 をもって Flash 4 のアクションを駆使するというわけわからないことをしていますが, おそらくこれを書いた段階では Flash 5 以上の言語や可能性は知らなかった方が書かれたのでしょう。 でも,発想は同じですね↓。 Flash Counter Ver.1.01 http://dream.lib.net/room/cgi/e_fcount.html > if (eval("/:totalcount") eq ""){goto and play(2);} > こんな感じで。/:totalcount にデータが読み込まれるまでループです。

sdow
質問者

お礼

どうもご丁寧にありがとうございました。 単体では問題なく動作いたしました。 イメージを上記スクリプトでフェードアウトさせた後、別のイメージも同じ内容で表示させたいのですが、どうもうまくいきません。 フレーム3 stop(); の箇所に gotoAndPlay("シーン 1"2,); という風にシーン1の2フレーム目に同じ内容の別イメージを配置し、 飛ばしたいのですがうまくいきません。 記述の仕方もしくは、場所が違うのでしょうか? 以上ご返答のほどよろしくお願いいたします。

sdow
質問者

補足

指定先を _root.nextFrame(); にしたところ問題なく動きました。 自己解決できました。 お騒がせしてすみません。 この度はどうもありがとうございました。

関連するQ&A

専門家に質問してみよう