2011-10-31 86 views
4

我解析从Flex(Flash ActionScript)应用程序获得的颜色代码,然后使用相同颜色创建HTML div元素。什么颜色格式/编码是这些Flash颜色值在

我的问题:颜色都只有8位数字长。所以他们不能是RGB颜色值可以吗?他们在什么颜色值格式?如果我可以确定它们的格式,我可以将它们转换为RGB。也许最后/第一位数字表示它的alpha值?

PS:我应该将颜色转换为RGB还是别的东西?

这是颜色代码值I从Flash应用程序获得的一个示例:

16777215 
4803910 
84545883 
16777215 
+0

这些都是十进制(基数为10)的值。假设完全不透明,'16777215'对应于纯白色'#FFFFFF'的十六进制(基数16)。你将不得不执行某种类型的转换。 – BoltClock

+0

@Jake M我的答案中有些东西是你想知道的吗? – Marty

回答

5

RGB颜色由hexadecimal digits(底座16)表示。

基地16意味着在数每个地方可以按照该顺序表示数字0-15:

0 1 2 3 4 5 6 7 8 9 A B C D E F 

使用0x在AS3表示十六进制数字。作为一个例子,运行这个:

trace(0xF); // 15 

您可以看到的输出以十进制表示(以10为底)。你在上面看到的问题是你的颜色的十进制表示。

如果要查看十六进制版本,请使用toString()并分析16作为基数参数。您会注意到默认值为10(对于我们都知道并喜欢的基数10 /十进制数)。

var num:int = 15; 

trace(num.toString(16)); // f 

希望这是有道理的。

+1

顺便说一句,这些也是ARGB值。所以只有最低24位是彩色数据。最重要的8位是阿尔法。 '0xAARRGGBB'。所以你可能需要按位与'0xFFFFFF'来获取颜色部分。 –

+1

一旦在句子中使用了单词位,位,位等,我有时会停下来开始大量运球:P – Marty

+0

+1好的例子,我的眼睛没有流血读这一个。 –