创建一个带有模糊边缘的遮罩但是没起效果的原因 - 如果要加载模糊边缘的遮罩来遮罩显示对象, 需要将被遮罩的显示对象的cacheAsBitmap 打开
package
{
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.filters.BlurFilter;
import flash.filters.BitmapFilterQuality;
public class SampleSimpleMask extends Sprite
{
private var _bitmap:Bitmap;
private var _circleMask:Sprite;
public function SampleSimpleMask()
{
initMask();
startLoadImg();
}
private function loaded(evt:Event):void
{
_bitmap = evt.target.content as Bitmap;
addChild(_bitmap);
_bitmap.cacheAsBitmap = true;//加上这句,将缓存显示对象的内部位图表示形式
_bitmap.mask = _circleMask;
}
private function initMask():void
{
_circleMask = new Sprite();
_circleMask.graphics.beginFill(0xFF00FF);
_circleMask.graphics.drawCircle(60,60,200);
_circleMask.graphics.endFill();
_circleMask.filters = [new BlurFilter(50,50,BitmapFilterQuality.HIGH)];
_circleMask.cacheAsBitmap = true;
this.addChild(_circleMask);
_circleMask.startDrag(true);
}
private function startLoadImg():void
{
var loader:Loader = new Loader();
var request:URLRequest = new URLRequest("a.jpg");
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaded);
loader.load(request);
}
}
}