Actionscript flex: преобразование # цветов в uint - PullRequest
16 голосов
/ 12 марта 2010

Я работаю с несколькими компонентами, которые принимают цвет как uint, но у меня есть цвета в формате "# 161616". Я не уверен, каково отношение между этими двумя типами цветов или как перейти от одного к другому.

Это не должно быть решением ActionScript. У меня есть только небольшое количество этих цветов, поэтому можно сделать и вручную.

Ответы [ 5 ]

38 голосов
/ 12 марта 2010
var color:uint = 0x161616;

Или, чтобы преобразовать их программно:

var s:String = "#161616";
var color:uint = uint("0x" + s.substr(1));
3 голосов
/ 12 марта 2010

Имейте в виду, что в таблицах стилей во Flex требуются значения цвета в форме #FFFFFF ... НЕ 0xFFFFFF. Свойства стиля элемента MXML не имеют значения. Хотя, когда вы начинаете писать что-то вроде:

<mx:VBox backgroundColor="

Intellisense запрашивает у вас значение uint; если вы продолжите и завершите это так

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

он все равно сделает ваш backgroundColor таким же, как если бы вы написали

<mx:VBox backgroundColor="0xFFFFFF"></VBox>
1 голос
/ 19 июня 2012

правильный путь с помощью StyleManager.getColorName() см. полную документацию

1 голос
/ 03 октября 2011

Вот вам 2 из моих функций утилит:

    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;  
    }     
0 голосов
/ 12 марта 2010
var i : uint = uint("0x161616"); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...