2010-03-12 18 views
16

Estoy trabajando con varios componentes que toman color como un uint, pero los colores que tengo están en el formato "# 161616". No estoy seguro de cuál es la relación entre los 2 tipos de colores o cómo ir de uno a otro.ActionScript flex: Conversión de # colores a uint

No tiene que ser una solución actionscript. Solo tengo una pequeña cantidad de estos colores, así que también puedo hacerlo manualmente.

Respuesta

36
var color:uint = 0x161616; 

O, para convertirlos mediante programación:

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

De ninguna manera, eso es increíble. Me siento un poco retrasado ahora :) – Daryl

+0

increíble, gracias! – Delcasda

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

Tenga en cuenta que las hojas de estilo en Flex quieren que los valores de color en forma #FFFFFF ... no es 0xFFFFFF. Las propiedades de estilo del elemento MXML no importan. Aunque cuando comienza a escribir algo como:

<mx:VBox backgroundColor=" 

el Intellisense le pide un valor mínimo; Si sigue adelante, y la complete al igual que

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

todavía hará que su backgroundColor lo mismo que si hubiera escrito

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

Aquí tiene 2 de mis funciones 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

la forma correcta es mediante el uso de StyleManager.getColorName() ver el completo documentation

Cuestiones relacionadas