Actionscript对象颜色更改/色调

时间:2012-11-05 15:29:09

标签: actionscript-3 flash flex actionscript colors

我是Actionscript的新手,我需要帮助更改使用add child调用的对象的颜色,我需要在用户从组合框中选择所需颜色后更改颜色:< / p>

//MY CODE

if (e.target.value == "blue")

{

//need to change to this (0x0000FF)

//enter code here

}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

尝试使用颜色转换对象。

var redAmount:Number = 0;
var greenAmount:Number = 0;
var blueAmount:Number = 1;
var alphaAmount:Number = 1;
var redOffset:Number = 0;
var greenOffset:Number = 0;
var blueOffset:Number = 0;
var alphaOffset:Number = 0;
yourDisplayObject.transform.colorTransform = new ColorTransform(redAmount, greenAmount, blueAmount, alphaAmount, redOffset, greeenOffset, blueOffset, alphaOffset);

前四个变量是乘数 - 它们将采用现有的颜色值并将其调整为好像乘以该数字。所以要减少1/2使用0.5的颜色。要将黑色全部设置为0.要更改任何内容,请全部为1。

后四个变量将增加或减少所有像素的颜色量。因此,要使颜色达到特定的十六进制值,例如0xFFCC33,您可以这样做:

yourDisplayObject.transform.colorTransform = new ColorTransform(0, 0, 0, 1, 0xFF, 0xCC, 0x33, 0x00);

如果您需要更多帮助,请参阅adobe文档的链接: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/ColorTransform.html

如果您决定逐渐更改颜色,而不是立即查看greensock中的TweenMax。 greensock补间类是一个广泛使用的动作脚本编程的主力。

使用TweenMax为显示对象着色,代码为:

TweenMax.to(yourDisplayObject, 1, {tint:0x0000FF});

此类使用该代码对对象应用颜色转换,但它会随时间逐渐更改值

以下是可以获取TweenMax的链接。 http://www.greensock.com/tweenmax/

答案 1 :(得分:0)

这是最容易理解的(我认为无论如何)这样做的方法:

if (e.target.value == "blue")
{

    var colorTransform:ColorTransform = yourObject.transform.colorTransform;  //store the current color data for the object
    colorTransform.color = 0x0000FF; //make it totally blue
    yourObject.transform.colorTransform = colorTransform; //now assign it back to the object

}