David Harris's Technology Blog

ColdFusion, Flex, and other stuff...   (and 366,212 hours, 57 mins in to my plan for global domination)

Search:

Calendar:

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Subscribe:

Enter your email address to subscribe to this blog.

Archives By Subject:

Tags:

action script adobe air ajax cfug coldfusion flash flex frameworks free software fxug general jpgmetadatareader mac off topic opensource papervision spry

Recent Entries:

No recent entries.

Top Posts:

Recent Comments:

Top Commenters:

My Links:

RSS:


Getting Red from my color

I have a situation where I want to manipulate colors in flash.

The idea is that the colors will cross fade nicely from one shade to another.

While you can define colors like this: 0xef556ef

that is stored as a unit data type.

Looking at the above string, it's 8 char in length.

The first two "0x" tell flash to treat this string as a hexadecimal value.

the next two "ef" are the red value, the next two "55" are green and the last 2 "ef" are blue.

Given the above value, I wanted to get the red shade of it, and only the red shade.

This is what I came up with:

var myColor       : uint = 0xef556ef

//convert the color to a string on a hex base and get the first 2 chars with "0x" at the front
var redValueString   :String = "0x" + myColor.toString( 16 ).substr(0,2);
            
trace( redValueString );

//convert the sting to the int value
var redValueInt      : int = int( redValueString );
            
trace( redValueInt.toString() );

This does give me the result, which is good, but I'm no flash pro, so is there a better (right?) way to do it?

Feel free to tell me if there is!

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
There is always more than one way to skin a cat. I threw together a quick class that offers easy to use getters for each of the color channels plus alpha, if available, using bit shifting. To avoid trying to format the code in the comments here, I put it all in a quick blog post:

http://blog.shortfusion.com/index.cfm/2009/12/17/S...
# Posted By jason olmsted | 12/18/09 6:54 AM
@Jason: Thanks for the example!
I never like working with numbers-to-strings-to-numbers.
I'll pull your example apart and use it ;-)
# Posted By David | 12/18/09 3:18 PM
guys... seriously:

var myColor : uint = 0xef556ef;
var myRed : uint = (myColor >> 16) & 0xff;
# Posted By Promethe | 12/19/09 12:14 AM
@Promethe: Thanks for the comment.
Jason uses that way too in his example.
working with number as number is always better. I just didn't know how to do it, hence this post ;-)
# Posted By David | 12/19/09 4:43 AM