Ответ 1
var color:uint = 0x161616;
Или, чтобы программно их преобразовать:
var s:String = "#161616";
var color:uint = uint("0x" + s.substr(1));
Я работаю с несколькими компонентами, которые принимают цвет как uint, но цвета у меня есть в формате "# 161616". Я не уверен, какова связь между двумя типами цветов или как идти от одного к другому.
Это не должно быть решением для ActionScript. У меня есть только небольшое количество этих цветов, поэтому это можно сделать и вручную.
var color:uint = 0x161616;
Или, чтобы программно их преобразовать:
var s:String = "#161616";
var color:uint = uint("0x" + s.substr(1));
Имейте в виду, что таблицы стилей в Flex требуют значений цвета в форме #FFFFFF... NOT 0xFFFFFF. Мне не нужны свойства стиля элемента MXML. Хотя когда вы начинаете писать что-то вроде:
<mx:VBox backgroundColor="
Intellisense запрашивает у вас значение uint; если вы продолжите и завершите его так
<mx:VBox backgroundColor="#FFFFFF"></VBox>
он все равно сделает ваш backgroundColor таким же, как если бы вы написали
<mx:VBox backgroundColor="0xFFFFFF"></VBox>
Здесь вы - две из моих функций 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;
}
правильным способом является использование StyleManager.getColorName()
см. полную документацию
var i : uint = uint("0x161616");