2010-03-12 5 views
16

Je travaille avec plusieurs composants qui prennent la couleur comme uint, mais les couleurs que j'ai sont dans le format "# 161616". Je ne suis pas sûr de la relation entre les 2 types de couleurs ou comment passer de l'un à l'autre.ActionScript flex: Conversion de # couleurs en uint

Il ne doit pas s'agir d'une solution ActionScript. Je n'ai qu'un petit nombre de ces couleurs, donc peut être fait manuellement aussi.

Répondre

36
var color:uint = 0x161616; 

Ou, pour les convertir par programme:

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

Pas moyen, c'est génial. Je me sens un peu retardé maintenant :) – Daryl

+0

génial, merci! – Delcasda

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

Soyez conscient que les feuilles de style dans Flex veulent que les valeurs de couleur sous la forme #FFFFFF ... PAS 0xFFFFFF. Les propriétés de style d'élément MXML ne s'en soucient pas. Bien que lorsque vous commencez à écrire quelque chose comme:

<mx:VBox backgroundColor=" 

l'Intellisense vous invite pour une valeur d'uint; si vous aller de l'avant et de le compléter comme si

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

il encore faire votre backgroundColor la même chose que si vous aviez écrit

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

Vous êtes 2 de mes utils fonctions:

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

la manière correcte est en utilisant StyleManager.getColorName() voir le plein documentation

Questions connexes