2010-03-12 12 views
16

Sto lavorando con diversi componenti che prendono colore come uint, ma i colori che ho sono nel formato di "# 161616". Non sono sicuro di quale sia la relazione tra i 2 tipi di colori o come passare da uno all'altro.Fless Actionscript: conversione di # colori in uint

Non deve essere una soluzione di ActionScript. Ho solo un piccolo numero di questi colori, quindi posso farlo anche manualmente.

risposta

36
var color:uint = 0x161616; 

Oppure, per convertirli a livello di codice:

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

In nessun modo, è fantastico. Mi sento leggermente ritardato ora :) – Daryl

+0

fantastico, grazie! – Delcasda

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

essere consapevoli del fatto che i fogli di stile in Flex vogliono i valori di colore in forma #FFFFFF ... non 0xFFFFFF. Le proprietà dello stile dell'elemento MXML non sono interessate. Sebbene quando inizi a scrivere qualcosa del tipo:

<mx:VBox backgroundColor=" 

l'Intellisense ti richiede un valore di un valore; se si va avanti e completarlo in questo modo

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

sarà ancora rendere il vostro backgroundColor lo stesso come se si fosse scritto

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

Ecco a voi due delle mie funzioni utils:

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; 
    }  
1

il modo corretto è utilizzando StyleManager.getColorName() vedere l'intero documentation