ActionScript3.0では,ムービークリップやビットマップデータ等に,一連の画像エフェクト処理である「フィルタ」を適用できます。フィルタ機能を利用する事で,多彩なエフェクト処理を,簡単に行うことができます。


 ActionScript3.0では,ステージ上に表示されている物に対して「フィルタ」をかけることができます。フィルタをかけた対象は,さまざまな画像処理効果が適用され,表示されます。

 図1のムービーは,ムービークリップや,写真画像に対して,いろいろなフィルタを適用するサンプルです。同じ画像ですが,フィルタを変えてみると,ちょっと印象が変わってきますね。

図1●いろいろなフィルタを利用したムービー
図1●いろいろなフィルタを利用したムービー
(クリックすると別ウィンドウでFlashムービーを表示します)

flash.filtersパッケージのクラス

 フィルタ効果を利用したい場合には,「flash.filtersパッケージ」に用意されている各種クラスを使用します(表1)。

表1●flash.filtersパッケージのクラスと対応するフィルタ
クラス 対応するフィルタや効果
DropShadowFilter ドロップシャドウ
GlowFilter グロー
BevelFilter ベベル
GradientGlowFilter グラデーショングロー
GradientBevelFilter グラデーションベベル
BlurFilter ぼかし
ColorMatrixFilter カラー調整
ConvolutionFilter マトリックス畳み込みフィルタ効果(スクリプトからのみ)
DisplacementMapFilter オブジェクトの置き換え(スクリプトからのみ)

 表1のクラスは,それぞれひとつのクラスが,ひと種類のフィルタ効果に対応しています。例えば「DropShadowFilterクラス」であれば,FlashCS3の[フィルタ機能]の「ドロップシャドウ」フィルタに対応しています。これらフィルタ効果を管理するクラスも,他のクラスと同じようにnew演算子でインスタンスを生成します。ドロップシャドウ効果を持つフィルタを作成したいのであれば,こんな感じですね。

var filter:DropShadowFilter = new DropShadowFilter();

 フィルタ効果を管理するクラスは,インスタンス生成時にそのフィルタの効果の強度をコントロールする各種のパラメータを,引数として渡すことができます。パラメータの種類や数は,フィルタの種類によって異なります。

 例えば次のコードでは,「対象インスタンスの60度の方向に10ピクセル分ずらした,赤色のシャドウを落とすフィルタ」を作成します。

var filter:DropShadowFilter = new DropShadowFilter(10, 60, 0xFF0000)

 このようにして作成したフィルタ効果は,DisplayObjectを継承するクラス(つまり,ステージ上に表示される物全般ですね)に適用したり,BitmapDataクラスに適用したりできます。