2

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

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

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

为我提供一些进展将不胜感激!

4

3 回答 3

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

于 2012-08-21T15:59:42.237 回答
1

你想要的是 yourMC.transform.colorTransform

这是一些可以解释它的进展。

于 2012-08-21T16:07:40.953 回答
0

两个 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

于 2012-08-22T00:55:27.043 回答