创建更深的颜色

时间:2011-11-09 15:00:23

标签: actionscript actionscript-2

我正在开发一个从XML文件加载动态颜色的应用程序。在某些情况下,我需要使用aplication来从我所拥有的十六进制中获得类似但更暗的颜色。每个值将以十六进制的形式下降33(十进制为51)。类似的东西:

  1. 0xFFFFFF将变为0xCCCCCC
  2. 0x6600CC将变为0x330099
  3. 我拥有的十六进制值是字符串。 我只是无法弄清楚如何以简单的方式解决它。

    请帮忙!

    请记住,这是AS2!

1 个答案:

答案 0 :(得分:4)

您应该搜索那里的众多颜色库中的一个。如果你想自己做,你需要对按位运算符有所了解。我认为将颜色减少百分之一而不是减去可以给你带来更好的效果。

var color:int = parseInt(colorString);

// use the shift operator to get individual colour values
var red:int = (color>> 16) & 0xFF;
var green:int = (color>> 8) & 0xFF;
var blue:int = color & 0xFF;

// change colours by subtracting. Todo: make sure colours are between 0 and 255
/* 
red -= 0x33;
green -= 0x33;
blue -= 0x33; */

// make colours darker by 10%
red *= 0.9;
green *= 0.9;
blue *= 0.9;

// combine individual colours
color = (red << 16) | (green << 8) | blue;