AS3 发表于 2013-2-7 01:36:22

利用blendMode实现 Alpaha 通道遮罩

http://chaimzane.iteye.com/blog/259101


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

什么东西呢,就是
      
      A:   mask.png                   B:   frame.png                               C:    Image.*
      
http://dl.iteye.com/upload/attachment/431526/af18347f-b60b-3b82-a5db-94e26f3519b7.png

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

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

                  



几张图要实现这样的效果

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




自然就想到了用 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,嘿嘿,一切都解决啦。
页: [1]
查看完整版本: 利用blendMode实现 Alpaha 通道遮罩