画面キャプチャを利用しフレームの切り替え時にクロスフェードさせる。

BitmapDataを使ってクロスフェード


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 );