我怎麼能轉換int類型爲8位十六進制十進制在柔性轉換一個有符號整數,以8位十六進制的柔性
我需要在C#[的ToString(「X8」)的功能similiar。這個函數在c#中完成這項工作。 但flex中的選項是什麼?
我怎麼能轉換int類型爲8位十六進制十進制在柔性轉換一個有符號整數,以8位十六進制的柔性
我需要在C#[的ToString(「X8」)的功能similiar。這個函數在c#中完成這項工作。 但flex中的選項是什麼?
如文檔所描述的,這幾乎是相同的:
var myInt:int = 255;
var hex:String = myInt.toString(16);
trace(hex); //outputs "ff"
見http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/int.html#toString()
如果這是你的顏色後:該文檔描述瞭如何處理這種情況了。
然而,沒有內置的方式來添加前導零。您可以使用的方法是這樣一做就是:
public function pad(s:String, pattern:String="0", minChars:int=8):String {
while (s.length < minChars) s = pattern + s;
return s;
}
trace(pad(hex)); //000000ff
注:這是6種十六進制顏色,但可以很容易地進行修改,以任何數量的十六進制數字。
找到很多輸出十分依賴字符串填充的填充十六進制值的方法。
我對任何這些都不滿意,所以這就是我想到的:(作爲獎勵,它適合於一行)你甚至可以通過刪除toUpperCase()調用來縮短它,因爲情況是非常不相關的。
"0x"+ (i+0x1000000).toString(16).substr(1,6).toUpperCase()
如果你想地板或天花板是黑色和白色,並把在一個函數:
public static function toHexColor(i:Number):String {
return i<0 ? "0x000000" : i>0xFFFFFF ? "0xFFFFFF" : "0x"+ (i+0x1000000).toString(16).substr(1,6).toUpperCase() ;
}
這是一個增強版本與評論:
public static function toHexColor(i:Number):String {
//enforce ceiling and floor
if(i>0xFFFFFF){ return "0xFFFFFF";}
if(i<0){return "0x000000";}
//add the "magic" number
i += 0x1000000;
//append the 0x and strip the extra 1
return "0x"+ i.toString(16).substr(1,6).toUpperCase();
}
可能重複[如何在Actionscript3中將十六進制轉換爲十進制?](http://stackoverflow.com/questions/14659322/how-to-convert-hex-to-decimal-in-actionscript3) – CyanAngel 2014-11-03 10:57:45