Подтвердить что ты не робот

ActionScript flex: преобразование # цветов в uint

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

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

4b9b3361

Ответ 1

var color:uint = 0x161616;

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

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

Ответ 2

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

<mx:VBox backgroundColor="

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

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

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

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

Ответ 3

Здесь вы - две из моих функций 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;  
    }     

Ответ 4

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

Ответ 5

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