destBmp.applyFilter(sourceBitmapData, sourceRect, destPoint, filter);
·sourceBitmapData -- 要使用的输入位图图像。源图像可以是另一个BitmapData对象,也可以引用当前
BitmapData实例
·sourceRect -- 定义要用作输入的源图像区域的矩形
·destPoint -- 目标图像(当前BitmapData实例)中与源矩形的左上角对应的点
·filter -- 用于执行过滤操作的滤镜对象
如果 BitmapData 对象和指定为 sourceBitmapData 参数的对象是同一对象,应用程序将使用该对象的临时副本来执行滤镜。为了获得最佳性能,请避免这种情况可以直接定义Bitmap.filters属性,它不会直接接触BitmapData的像素数据,因为滤镜只应用在包装BitmapData的Bitmap上
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.BlurFilter;
import flash.geom.Point;
public class Sample0319 extends Sprite
{
private var image:Bitmap;
private var blurFilter:BlurFilter;
private var point:Point;
public function Sample0319()
{
image = new Bitmap();
image.bitmapData = new BitmapData(stage.stageWidth,stage.stageHeight,false,0x000000);
this.addChild(image);
blurFilter = new BlurFilter();
point = new Point();
this.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
private function onEnterFrame(target:Event):void
{
for(var i:uint=0;i<100;i++)
{
image.bitmapData.setPixel(mouseX + Math.random()*20 - 10,
mouseY + Math.random()*20 - 10,
0xFFFFFF);
}
image.bitmapData.applyFilter(image.bitmapData,image.bitmapData.rect,point,blurFilter);
}
}
}