我正在开发一个从XML文件加载动态颜色的应用程序。在某些情况下,我需要使用aplication来从我所拥有的十六进制中获得类似但更暗的颜色。每个值将以十六进制的形式下降33(十进制为51)。类似的东西:
我拥有的十六进制值是字符串。 我只是无法弄清楚如何以简单的方式解决它。
请帮忙!
请记住,这是AS2!
答案 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;