我是 Actionscript 的新手,我需要帮助更改被调用的对象add child
的颜色,一旦用户从组合框中选择了所需的颜色,我需要更改颜色:
//MY CODE
if (e.target.value == "blue")
{
//need to change to this (0x0000FF)
//enter code here
}
非常感谢任何帮助!
我是 Actionscript 的新手,我需要帮助更改被调用的对象add child
的颜色,一旦用户从组合框中选择了所需的颜色,我需要更改颜色:
//MY CODE
if (e.target.value == "blue")
{
//need to change to this (0x0000FF)
//enter code here
}
非常感谢任何帮助!
尝试使用颜色变换对象。
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 tween 类是广泛使用的动作脚本编程的主力。
要使用 TweenMax 为显示对象着色,代码如下:
TweenMax.to(yourDisplayObject, 1, {tint:0x0000FF});
此类使用该代码对对象应用颜色变换,但它会随着时间逐渐改变值
这是获取 TweenMax 的链接。 http://www.greensock.com/tweenmax/
这是完成此操作的最容易理解(无论如何我都认为)的方法:
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
}