利用blendMode实现 Alpaha 通道遮罩

本文介绍了一种在Flash中使用BlendMode而非cacheAsBitmap实现Alpha通道遮罩的方法,解决了因cacheAsBitmap导致的对象矩阵取值不准的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[url]http://chaimzane.iteye.com/blog/259101[/url]


当本身或父容器的cacheAsBitmap = true 时,就会对,该对象的matrix 产生扰乱,就是取值设置不准确,这是 flash的bug http://bugs.adobe.com/jira/browse/FP-121。

什么东西呢,就是

A: mask.png B: frame.png C: Image.*

[img]http://dl.iteye.com/upload/attachment/431526/af18347f-b60b-3b82-a5db-94e26f3519b7.png[/img]

[img]http://dl.iteye.com/upload/attachment/431528/39a2c969-03ec-3a20-8369-986c4a02f78b.png[/img]

[img]http://dl.iteye.com/upload/attachment/431530/adf56abf-a918-3175-aeb9-8c5059f1adfd.jpg[/img]





几张图要实现这样的效果

[img]http://dl.iteye.com/upload/attachment/431532/d741d173-cf52-339f-ba1e-84e20c685495.jpg[/img]




自然就想到了用 flash的遮罩来实现。哦对了,其中mask.png还要做下补色,然后对frame.png和Image.*组成的图
进行apha遮罩,但是这样做会有个问题因为,对Image.*的操作是基于 matrix的,而alpha遮罩是要设置cacheAsBitmap = true 的,但是这样做会有我一开始提到的那个问题,虽然http://www.sephiroth.it/weblog/a ... heasbitmap_hell.php上面给出了解决办法,但是我发现还是没有根本解决问题。怎么办勒,终于被我发现另外一种实现alpha通道遮罩的办法,而不用设置cacheAsBitmap=true,那就是用blendMode。将父层的blend设置为
BlendMode.LAYER,在将mask层放在被遮罩层上并设置blend = BlendMode.ALPHA,嘿嘿,一切都解决啦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值