Actionscript flex: Converting # colors to uint

23,490

Solution 1

var color:uint = 0x161616;

Or, to convert them programmatically:

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

Solution 2

Be aware that stylesheets in Flex want the color values in the form #FFFFFF ... NOT 0xFFFFFF. MXML element style properties don't care. Although when you start writing something like:

<mx:VBox backgroundColor="

the Intellisense prompts you for a uint value; if you go ahead and complete it like so

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

it will still make your backgroundColor the same as if you had written

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

Solution 3

Here you are 2 of my utils functions:

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

Solution 4

the correct way is by using StyleManager.getColorName() see the full documentation

Share:
23,490
Daryl
Author by

Daryl

Updated on August 25, 2020

Comments

  • Daryl
    Daryl almost 4 years

    I'm working with several components that take color as a uint, but the colors I have are in the format of "#161616". I'm not sure what the relation between the 2 types of colors are or how to go from one to another.

    It doesn't have to be an actionscript solution. I have only a small number of these colors, so can be done manually too.