如何在AS3中将RGB颜色转换为十六进制?例如:R = 253 G = 132 B = 58。

Tks。

最佳答案

Robusto的解决方案太慢了。

因为RGB值是这样存储的:

8b Red | 8b Green | 8b Blue

并且0-255的值(不是巧合)也具有8b,您可以使用按位左移来获取int值,然后可以获取十六进制(快3倍)。所以:
var intVal:int = red << 16 | green << 8 | blue;
var hexVal:String = intVal.toString(16);
hexVal = "#" + (hexVal.length < 6 ? "0" + hexVal : hexVal);

其中红色,绿色和蓝色是要转换的RGB值。

10-06 02:19