2012-02-07 106 views
3

我想掩盖Flash动作脚本动态透明的PNG文件对象3.0透明PNG掩蔽在AS3

,如果您有任何解决方案改编职系的是请转发..

谢谢 Hardik

+0

我知道一个不容易的办法,但在动画它会杀死CPU。您可以将遮罩目标绘制为位图,然后从png中检查哪些像素是透明的以将其从目标中擦除。 – turbosqel 2012-02-07 18:35:51

+1

动态的,你的意思是tranparent PNG会像动画一样变化,还是动态的,它可能是多个PNG中的一个被使用? – 2012-02-08 13:43:50

回答

-1

PhotonStorm有一个implementation这个,你可以挖掘并找出他们是如何做到的。

+0

对于3年后降级的人,请添加评论,以了解我的答案出了什么问题,以便我可以改进它。或者更好;你可以编辑它来更加正确,或者给出更好的答案。 – 2015-05-01 22:42:50

+0

即使在三年前,这应该不是一个答案,它应该是一个评论。因此,另一个downvote。 – 2015-05-26 21:21:36

1

我认为,通过动态PNG,您只是指在运行时已由代码加载的代码。没有什么特别的,对于导入为位图的任何库对象都适用同样的答案,然后设置为使用无损压缩。

为了做到这一点,要用作掩码的png必须嵌入DisplayObject(通常是Sprite,MovieClip或甚至是Loader)中。 DisplayObject类具有cacheAsBitmap属性,并且您需要将该属性设置为true,以使持有遮罩的DisplayObject和持有要遮罩的内容的DisplayObject都为true。然后通过代码分配掩码以让掩码显示内容。

例子:

//myClip is the MovieClip or Sprite or even Loader holding the content 
myClip.cacheAsBitmap=true; 
//myMask is a MovieClip or Sprite or even Loader containing the transparent PNG 
myMask.cacheAsBitmap=true; 

//set up the mask to reveal the content where the PNG is not transparent 
myClip.mask=maskClip;