我很难在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是我在舞台上试图渲染的片段--它只是一个白色的方块。
任何帮助都是非常感谢的,谢谢提前!
发布于 2014-04-04 19:09:27
ColorTransform.color需要一个RGB值,而它似乎是试图给它一个ARGB值*。
更改行文:
colourtransform.color = uint("0xff" + pixelvalue);
只想:
colourtransform.color = pixelvalue;
而且您的代码应该可以像预期的那样工作。
*虽然我不认为你在这里的做法是正确的。
https://stackoverflow.com/questions/22870146
复制相似问题