So what does number bases has to do with colors? Well, in this exact moment you are looking at several colors, and at least two color models. The most commonly used on webpages, hexadecimal colors, like #FFFFFF or 0xffffff (in Flash/flex). In fact, hexadecimal means 16 based, as opposed to decimal or 10 based like we're used to (0-9). This is kinda good to know, because.. let's say you want your flash app to sample some colors from a picture and present the colors to a web-designer in a hexadecimal format.. how would you go about converting the premultiplied color value Flash gives you into an usable hex color?
Let's say you sample the color white, Flash gives you 16777215, completeley useless for a designer. Let's transform that value into a hex color in one line:
var myWhiteColor:uint = 16777215;
trace(myWhiteColor.toString(16));
And there you go, Flash spits out "ffffff". This happes because the toString method takes the radix or number base as a parameter and converts the passed number. To reverse the conversion you'd use
parseInt("0xffffff")
, that would give you the original premultiplied color value.
2 comments:
Thanks for the tip! You saved my day :)
hello, I might be doing something wrong, But when I do this, I get 0x0 rather than 0x000000
is this correct? and also, when I try and do number.toString(16).toUpperCase() i get "Function" rather than the text in uppercase
Post a Comment