2011-10-31 138 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好的例子,我的眼睛沒有流血讀這一個。 –