2010-03-12 3 views
16

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

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

ответ

36
var color:uint = 0x161616; 

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

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

Ни в коем случае, это здорово. Я чувствую себя немного отсталым сейчас :) – Daryl

+0

awesome, спасибо! – Delcasda

3

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

<mx:VBox backgroundColor=" 

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

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

он все равно будет сделать свой BackgroundColor так же, как если бы вы написали

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

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