flex actionscript-3

ActionScript flex: Convertir#colores a uint



actionscript-3 (5)

Aquí tienes 2 de mis funciones utiles:

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

Estoy trabajando con varios componentes que toman el color como una 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 pasar de uno a otro.

No tiene que ser una solución de ActionScript. Tengo solo una pequeña cantidad de estos colores, por lo que también se puede hacer manualmente.


Tenga en cuenta que las hojas de estilo en Flex quieren que los valores de color tengan el formato #FFFFFF ... NO 0xFFFFFF. A las propiedades de estilo del elemento MXML no les importa. Aunque cuando empiezas a escribir algo como:

<mx:VBox backgroundColor="

el Intellisense le solicita un valor uint; Si sigues adelante y lo completas así.

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

seguirá haciendo que tu color de fondo sea el mismo que si hubieras escrito

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


la forma correcta es mediante StyleManager.getColorName() consulte la documentation completa


var color:uint = 0x161616;

O, para convertirlos programáticamente:

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


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