Flash颜色转换

时间:2014-04-04 18:13:00

标签: actionscript-3 flash

我在Flash中转换颜色有困难。我认为应该很容易,但由于某些原因,我的代码没有按预期工作。

我有一个位图图形,包括从红色到黄色到绿色的色谱(你知道,就像你在音频电平表中看到的那样)。

我只是想从该位图中采样一种颜色,然后在采样颜色的舞台上为一个影片剪辑着色。 (我将要采取的效果是彩色进度 - 显示越接近100%绿色,越接近0%它是红色的 - 我还没有实现那个部分,但我并不担心这一点)。

无论如何,我对颜色进行了很好的采样,并对我的剪辑进行着色,但无论我对剪辑进行着色,它都会产生与我采样的颜色不同的颜色(迹线颜色与我在夹)。我无法看到我出错的地方 - 我希望这是一个愚蠢的错误,有人可以轻易发现它。

import flash.display.BitmapData;

var bmd:BitmapData = new BitmapData(mc_colourbar.width, mc_colourbar.height);

bmd.draw(mc_colourbar);

var pixelvalue:uint = bmd.getPixel(0, 1);

trace(pixelvalue.toString(16));

var colourtransform:ColorTransform = mc_box.transform.colorTransform;

colourtransform.color = uint("0xff" + pixelvalue);

mc_box.transform.colorTransform = colourtransform ;

mc_box是我尝试着色的舞台上的剪辑 - 它只是一个白色方块。

感谢任何帮助,提前谢谢!

1 个答案:

答案 0 :(得分:1)

ColorTransform.color需要一个RGB值,看起来好像你试图给它一个ARGB值*。

更改行:

colourtransform.color = uint("0xff" + pixelvalue);

只是:

colourtransform.color = pixelvalue;

并且您的代码应该按预期工作。

*虽然我不会认为您尝试这样做的方式是正确的。