开发者

Actionscript flex: Converting # colors to uint

开发者 https://www.devze.com 2022-12-23 05:37 出处:网络
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 f

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开发者_StackOverflow 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.


var color:uint = 0x161616;

Or, to convert them programmatically:

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


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>


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


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


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

精彩评论

暂无评论...
验证码 换一张
取 消