设置PNG非透明区域为mask区域

在Flash中我们可以画一个任意的图片为mask区域..
有时候我们可能需要利用png中非透明区域为mask..
如果直接使用

a.mask = b(b为包含png图片的对象);

出来的效果会这样:(右图为png原图)

显示/隐藏FLASH

 



而我们希望得到的效果其实是:

显示/隐藏FLASH

 



代码如下:

//随便加载一张图片,来用处为mask的目标
var image:Loader = new Loader();
image.cacheAsBitmap = true;//此步重要,把对象缓存为位图
addChild(image);
image.load(new URLRequest("001.jpg"));
 
//加载一张png图,作为mask区域;
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,complete)
loader.filters = [new BlurFilter(0,0,0)]//此步重要,给对象加一个filter
addChild(loader)
loader.load(new URLRequest("10020601.png"));
 
//设置mask
image.mask = loader;
 
//以下代码非必要...................................................................
 
//把png复制一份显示出来
function complete(e:Event):void
{
    var bit:BitmapData = Bitmap(loader.content).bitmapData.clone();
    var bmp:Bitmap = new Bitmap(bit);
    bmp.x = 256;
    addChild(bmp);
}
From:http://blog.l4cd.net/post-old-97.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值