AS3:在父级精灵上设置alpha而不影响精灵子级

时间:2010-03-12 07:41:58

标签: actionscript-3

我猜是个愚蠢的问题,但我还没有找到答案:)

如果我为父精灵更改了某个值,则相同的值将影响其所有子项。因此,如果我在父项上设置alpha或width,则子项将自动获得相同的值。

有什么方法可以阻止这种情况发生吗?

4 个答案:

答案 0 :(得分:3)

简答:没有

更长的答案:对于阿尔法来说,我所知道的没有解决方法。对于宽度,你可以破解一些工作,以便子剪辑看起来看看父scaleX是什么,然后增加它自己的scaleX如果它小于1但这不是我要做的事情。 最好的方法是创建一个不包含图形资源的固定夹,但您可以使用它来移动其他夹子。

答案 1 :(得分:3)

似乎做父母的alpha = 1 / alpha工作正常。这意味着将孩子的alpha设置为大于1。至少这适用于AS3 / Flash 10。

答案 2 :(得分:2)

如果你不想避免改变孩子的alpha(就像大卫建议的那样),而是在精灵褪色之前预渲染精灵(这样你就可以淡化一个人而不显示他的骨头),然后设置blendMode = BlendMode.LAYER ;

这在GPU渲染上不可用,因此在移动设备上您可能需要创建位图,将精灵绘制到位图然后淡化位图。也许它更容易,因为AIR有一些cacheAsBitmap的升级功能(它的命名方式不同,也就是说,你有cacheAsBitmap和我正在谈论的另一个),这可能会起作用,但我不知道,因为我不喜欢不要使用AIR。

答案 3 :(得分:0)

如果您在尺寸之后,那么您可以简单地得到父变换矩阵的逆并将其应用于孩子,这里有一个非常好的教程,例如:Transoform Matrix.

查看应用程序 - >摇晃表情符号部分,了解您的目标。

其他像alpha这样的东西我不知道如何绕行。