在Flash中我们可以画一个任意的图片为mask区域..有时候我们可能需要利用png中非透明区域为mask..如果直接使用a.mask = b(b为包含png图片的对象);出来的效果会这样:(右图为png原图)
而我们希望得到的效果其实是:
分析一下上面的效果的代码~~
-
- var image:Loader = new Loader();
- image.cacheAsBitmap = true;
- addChild(image);
- image.load(new URLRequest("/UploadTeach/200901/20090116173230248.jpg"));
-
-
- var loader:Loader = new Loader();
- loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete)
- loader.filters = [new BlurFilter(0,0,0)]
- addChild(loader)
- loader.load(new URLRequest("/UploadTeach/200901/20090116173231266.png"));
-
-
- image.mask = loader;
-
-
-
-
- function complete(e:Event):void
- {
- var bit:BitmapData = Bitmap(loader.content).bitmapData.clone();
- var bmp:Bitmap = new Bitmap(bit);
- bmp.x = 256;
- addChild(bmp);
- }