我一直在尝试找到一种方法,将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