2010-03-12 75 views
16

我正在處理幾個將顏色作爲uint的組件,但是我使用的顏色格式爲「#161616」。我不確定兩種顏色之間的關係是什麼或者如何從一個到另一個。Actionscript flex:將#個顏色轉換爲uint

它不一定是一個動作解決方案。我只有少數這些顏色,所以也可以手動完成。

回答

36
var color:uint = 0x161616; 

或者,它們編程轉換:

var s:String = "#161616"; 
var color:uint = uint("0x" + s.substr(1)); 
+7

沒辦法,那太棒了。我現在覺得稍微遲鈍:) – Daryl 2010-03-12 20:14:32

+0

真棒,謝謝! – Delcasda 2016-08-29 20:29:20

0
var i : uint = uint("0x161616"); 
3

請注意,在Flex的樣式表要在形式#FFFFFF的顏色值...不0XFFFFFF。 MXML元素樣式屬性不關心。雖然當你開始寫這樣的東西:

<mx:VBox backgroundColor=" 

智能感知提示您輸入一個uint值;如果你繼續和完成它像這樣

<mx:VBox backgroundColor="#FFFFFF"></VBox> 

它仍然會讓你的backgroundColor一樣,如果你寫了

<mx:VBox backgroundColor="0xFFFFFF"></VBox> 
1

在這裏,你是我的utils的功能2:

public static function convertUintToString(color:uint):String { 
      return color.toString(16); 
    } 

    public static function convertStringToUint(value:String, mask:String):uint { 
      var colorString:String = "0x" + value; 
      var colorUint:uint = mx.core.Singleton.getInstance("mx.styles::IStyleManager2").getColorName(colorString); 

      return colorUint; 
    }