在AS3中结合颜色和Alpha

时间:2012-08-21 15:03:39

标签: actionscript-3 flash oop

我一直试图找到一种方法将MovieClip(1)(设置为蓝色 - 50%alpha)移动到MovieClip(2)上(设置为红色 - 50%alpha),然后MovieClip(1)接受颜色值等于MovieClip(1)和MovieClip(2)的初始颜色的混合(保持50%的alpha级别)。

我被卡住了 - 大脑冻结了,我似乎无法找到能让我接近的解决方案!

任何人对解决方案有什么想法?

非常感谢我提供一些进展!

3 个答案:

答案 0 :(得分:1)

查看此代码段

http://www.actionscript-flash-guru.com/blog/37-mixing-colors-add-10-percent-of-one-color-to-another-actionscript-30-as3-

您可以调整一下以满足您的需求,例如将rgb3部分中的.1和.9设置为.5

答案 1 :(得分:1)

你想要的是yourMC.transform.colorTransform

以下是一些可以解释它的headway

答案 2 :(得分:0)

两个MovieClip对象必须具有由colorTransform属性定义的颜色。

var ctf :ColorTransform = mc1.transform.colorTransform;
    ctf.color = color;            
mc1.transform.colorTransform = ctf;

然后将两个ColorTransform对象组合成一个新对象,方法是将第一个MovieClip的ColorTransform对象的每个属性添加到第二个MovieClip的相同属性的差值除以2。

var ctf1 :ColorTransform = mc1.transform.colorTransform,
    ctf2 :ColorTransform = mc2.transform.colorTransform;        

var props :Array = ["redOffset", "redMultiplier", "greenOffset", "greenMultiplier", "blueOffset", "blueMultiplier"];
for each(var p :String in props)
    ctf1[p] += (ctf2[p] - ctf1[p]) * a;

mc1.transform.colorTransform = ctf1;

以下是一段代码摘要:http://wonderfl.net/c/fQ1i