AS3覚え書き5 :フィルタ
FilterはBitmapFilterの派生クラスとして様々なものが定義されています。
DisplayObjectクラスにはfilterという配列のプロパティを持っており、この表示オブジェクトにかけたいフィルタを格納します。
フィルタの追加
各種フィルタはflash.filtersで定義されています。
import flash.filters.*;
フィルタを追加するにはArrayクラスのpushプロパティを利用します。
var obj:Sprite = new Sprite(); obj.filters.push(new BlurFilter(2, 5));
フィルタを追加している例です。
import flash.display.Sprite; public class Main extends Sprite { import flash.filters.*; public function Main() { var sp:Sprite = new Sprite(); trace(myFilters.length); // 0 sp.filters.push(new BevelFilter()); sp.filters.push(new BlurFilter(2, 5)); addChild(sp); } }
以下フィルタ一覧です。全てBitmapFilterを継承しています。
BevelFilter
ベベル効果
myFilters.push(new BevelFilter());
BlurFilter
ぼかし効果
myFilters.push(new BlurFilter(2, 5));
ColorMatrixFilter
RGBA→4×5行列変換→RGBAというフィルタ
ConvolutionFilter
畳み込み
引数には以下の値を指定します。
畳み込み行列の行数、列数、matrix:Array畳み込み行列、divisor:畳み込み後に各画素を割る値、bias:そのあとに加える値を指定します。
var matrix :Array =[ -1, -1, -1 -1, 10, -1 -1, -1, -1 ] var divisor:Number = 1.0; var bias :Number = 0; var myConvolutionFilter:ConvolutionFilter = new ConvolutionFilter(3, 3, matrix, divisor, bias) myFilters.push(myConvolutionFilter);
DisplacementMapFilter
置き換えマップイメージによる変位
DropShadowFilter
ドロップシャドウ
myFilters.push(new DropShadowFilter(4,45,0xAAAAAA,0.6));
GlowFilter
グロー効果
myFilters.push(new GlowFilter(0xFFCCFF, 0.7, 50, 50));
GradientBevelFilter
グラデーションベベル効果
myFilters.push(new GradientBevelFilter());
GradientGlowFilter
グラデーショングロー効果
myFilters.push(new GradientGlowFilter());