我一直在尝试找到一种方法,将 MovieClip(1)(设置为蓝色 - 50% alpha)移到 MovieClip(2)(设置为红色 - 50% alpha)上,然后 MovieClip(1) 采用颜色值等于 MovieClip(1) 和 MovieClip(2) 的初始颜色的混合(保持 50% 的 alpha 级别)。
我被卡住了 - 大脑冻结,我似乎无法找到让我靠近任何地方的解决方案!
有人对解决方案有任何想法吗?
为我提供一些进展将不胜感激!
我一直在尝试找到一种方法,将 MovieClip(1)(设置为蓝色 - 50% alpha)移到 MovieClip(2)(设置为红色 - 50% alpha)上,然后 MovieClip(1) 采用颜色值等于 MovieClip(1) 和 MovieClip(2) 的初始颜色的混合(保持 50% 的 alpha 级别)。
我被卡住了 - 大脑冻结,我似乎无法找到让我靠近任何地方的解决方案!
有人对解决方案有任何想法吗?
为我提供一些进展将不胜感激!
看看这个片段
您可以稍微调整一下以满足您的需求,例如将 rgb3 部分中的 .1 和 .9 都设置为 .5
你想要的是 yourMC.transform.colorTransform
这是一些可以解释它的进展。
两个 MovieClip 对象都必须具有由其colorTransform
属性定义的颜色。
var ctf :ColorTransform = mc1.transform.colorTransform;
ctf.color = color;
mc1.transform.colorTransform = ctf;
然后将这两个ColorTransform
对象组合成一个新ColorTransform
对象,方法是将第一个 MovieClip 对象的每个属性与第二个 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