画面キャプチャを利用しフレームの切り替え時にクロスフェードさせる。
Flashを使ってごくごく単純なスライドショーを作るときなど(内容によっては)タイムラインの方がお手軽だということもありますね。
でも各フレームごとの画面切り替えってトゥイーンを使うと結構重たくなりがちだし、レイヤーが増えまくって大変。
Flash初心者の方にもクロスフェードが簡単でお手軽に使えるようなクラスを作ってみました。
使い方は簡単。
まず ScreenEffect.as をFLAファイルと同階層に配置します。
フレームを移動する命令である gotoAndPlay() や nextFrame() を行う前の行で
ScreenEffect.crossFade( 20 );
と入力するだけです。
この1行で BitmapData を利用したFlashの画面キャプチャが行われます。
あとは、その後で、どのフレームに移動しても一番上のレイヤーにキャプチャした画像が載っているので、それが消えるまで下の変化は判りません。
□サンプルはこちら。
http://testing.horori.net/Flash/ScreenEffect/
□サンプルダウンロードはこちら。
http://testing.horori.net/Flash/ScreenEffect/ScreenEffect.zip
追記(07/7/16):
数値指定してもフェードが変わらないというバグがあったようですね。
ScreenEffect.as 10行目の判定にミスがあったようです。
以下のように変更してください。(ZIPは修正済です)
cover.tick = 100/ (( frame != undefined ) ? frame : 10 );