[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,嘿嘿,一切都解决啦。
当本身或父容器的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,嘿嘿,一切都解决啦。