在AS3中组合颜色和字母



我一直在尝试找到一种方法,将MovieClip(1)(设置为蓝色-50%alpha)移动到MovieClip2(设置为红色-50%Alpa)上,然后MovieClips(1)采用等于MovieClipp(1)和Movie Clip(2)的初始颜色混合的颜色值(保持50%的alpha级别)。

我被卡住了——大脑冻结了,我似乎找不到一个能让我接近的解决方案!

有人有解决方案的想法吗?

如果能给我一些进展,我将不胜感激!

查看这个片段

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

您想要的是您的MC.transform.colorTransform

以下是一些可以解释的进展。

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

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

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

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

最新更新