【问题标题】:Masking with transparent PNG in AS3在 AS3 中使用透明 PNG 进行遮罩
【发布时间】:2012-02-29 03:27:24
【问题描述】:

我想在 Flash Action Script 3.0 中使用动态透明 PNG 文件屏蔽对象

如果您有任何重新分级的解决方案,请转发..

谢谢, 哈迪克

【问题讨论】:

  • 我知道一种不容易的方法,但在动画中它会杀死 cpu。您可以将蒙版目标绘制为位图,然后从 png 中检查哪些像素是透明的以将其从目标中删除。
  • 动态是指透明的 PNG 会像动画一样发生变化,还是动态的,因为它可能是使用的多个 PNG 之一?

标签: flash actionscript-3


【解决方案1】:

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

为了做到这一点,必须将用作蒙版的 png 嵌入到 DisplayObject(通常是 Sprite、MovieClip 甚至是加载器)中。 DisplayObject 类有一个属性cacheAsBitmap,您需要将该属性设置为true,以便为持有掩码的DisplayObject 和持有要掩码的内容的对象设置。然后通过代码分配掩码,让掩码显示内容。

例子:

//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;

【讨论】:

    【解决方案2】:

    PhotonStorm 有一个 implementation ,您可以深入研究并弄清楚他们是如何做到的。

    【讨论】:

    • 对于 3 年后投反对票的人,请添加评论以说明我的答案有什么问题,以便我改进它。或者更好;您可以将其编辑为更正确,或给出更好的答案。
    • 即使在三年前,这也不应该是一个答案,它应该是一个评论。因此再次投反对票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多