VistaのAeroウィンドウをFlashで表現

次期Windows Vistaには「Aeroグラス」という、ウィンドウの下の背景が、ブラーがかかりつつ透けて見える表現があるのですが、それをFlashで再現されたサンプルを「Pixelfumes Flash Blog: Flash 8 Active Blur」さんにてソース付きで見る事ができます。リンク先サンプル中の、背景テキストを打ち直して遊んでみてください。

ソースを見て、勉強になったのは

  • あらかじめ、空のMCにマスクとブラーの設定をしておいて、後から実体化(BitmapDataをアタッチ)させてもOKということ。マスクする時点でマスク対象の実体がないと駄目そうに思っていたけど、そうでもないんですね。
  • とりあえず背景全てをBitmapとしてキャプチャしておいて、ウィンドウの移動に応じてsnapHolder_mcごと移動させる手法。(_x, _yの移動をコメントアウトすると謎が解けます)
  • サンプルではonEnterFrame中でbgSnap.draw(bg_mc)しているけども、これは背景の表示が変化する(ここではテキストのリタイプ)のに対応するためで、背景が変化しないなら、初期化段階で1回だけdrawするだけでOK。その方が負担も少ない。
  • 同様の理由で、背景が不変なら、onEnterFrameではなく、onMouseMoveにして軽くする事もできる。(リンク先記事のコメントでも言及されてる。)
  • テキスト選択による反転表示もdrawしてくれるのが新鮮でした。本当にありのままをキャプチャするんですね。

また、同じ方の別のエントリ「Pixelfumes Flash Blog: Flash 8 Version of the Modal Pop-up Desaturation Technique by Alistar McLeod」(元ネタはこちらのFlex用エフェクト)では、サブウィンドウのポップアップ時に、背景を徐々にグレーアウトさせる表現が使われているのだけど、カラー画像をもっともそれらしくグレースケールにマトリックス変換するために、ある係数(Poynton係数?)を覚えておく必要があって、それが、リンク先サンプルflaファイルで使われています。

関連記事として:
[Flashcoders] Colormatrix examples (flash 8)
colorspace-faq — FAQ about Color and Gamma
Matrix Operations for Image Processing
Quasimondo – Mario Klingemann’s Flash Blog: Flash 8: ColorMatrix
洋書「Flash 8 Essentials」にも載っています。

なんかもうFlashクリエイターの範疇を超えて、CG画像処理の専門家みたいな知識が必要になってますね。(一方ではJAVA化してるし。)勉強する事がいっぱいです。