2010-03-18 25 views
3

Bonjour à tous,Conversion couleur uint à ARVB hexadécimale pour la couleur kml

Je suis coincé en train de convertir une valeur de couleur uint dans son équivalent ARVB format hexadécimal. Fondamentalement, j'essaye de convertir une couleur de Flex (AS3) dans sa couleur appropriée de kml, qui est dans le format hexadécimal d'argb de ce que je rassemble. Voici ma fonction telle qu'elle est actuellement. Bien qu'il se convertisse en une couleur kml valide, ce n'est pas la bonne couleur ou même proche. Est-ce que quelqu'un voit quelque chose de mal ici?

private static function getKmlColor(color:uint,alpha:Number):String 
    { 
     var argb:uint = 0; 
     var alphaUint:uint = 255 * alpha; 
     argb += (alphaUint<<24); 
     argb += (color); 
     return argb.toString(16); 
    } 

Répondre

1

Je suppose que votre alpha est quelque chose entre 0 et 1 (0-100%) ce qui devrait être bien, bien que je serais probablement faire un double et puis plancher ou un plafond au nombre entier le plus proche.

Mais le reste semble OK

+0

Vous avez raison au sujet de l'alpha, il est une valeur comprise entre 0 et 1. Bon point sur l'arrondi (ou son absence). – user163757