You want to create an RGB value to use with setRGB( ) based on the red, green, and blue part values.
Use the bitshift left and bitwise OR operators.
The easiest way to combine individual red, green, and blue components into a single RGB value is to use bitwise operations. Simply shift the red value left by 16 bits and the green value left by 8 bits, then combine them with the blue value using the bitwise OR operator, as follows:
red = 100; green = 100; blue = 100; rgb = (red << 16) | (green << 8) | (blue); // Create the Color object. my_color = new Color(myMovieClip); // Set the RGB color. my_color.setRGB(rgb);
The bitshift left operator (<<) effectively multiplies a number by two for each bit position that the number is shifted (this is similar to how shifting a decimal number one decimal place to the left effectively multiplies it by 10). In this context, the bitwise OR operator (|) essentially concatenates the shifted numbers together. Therefore, assuming that red, green, and blue are each in the range of 0 to 255, the following:
rgb = (red << 16) | (green << 8) | (blue);
is equivalent to:
rgb = (red * Math.pow(2,16)) + (green * Math.pow(2,8)) + blue;
or:
rgb = (red * 65536) + (green * 256) + blue;
In practice, it is often easier to use Color.setTransform( )?in which the red, green, and blue components are specified as separate properties of a transform object?to alter the targeted clip's color. Furthermore, setTransform( ) allows you to set the alpha value for a color, which setRGB( ) does not.
Recipe 3.7