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