views:

317

answers:

2

Happy New Year 2010 everyone :) Just getting back into the Flash groove, and having a simple question.

I have a movie(video player) where the color of the buttons changes. I've already drawn out the buttons and created a 1 color box(movieClip) that will be the background of all the buttons.

I've used ColorTransform to change the color of a rectangle that I used code to create, but what is the simplest way to go about changing a color in a movieClip containing a graphic that you physically have drawn out.

Path to movieClip that I need to change the HEX value of: controls.btn_Sound.colorChip

+1  A: 

I used ColorMatrixFilter to alter color properties to my Sprites, MCs:

example:

var matrix:Array = new Array();
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// red
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// green
matrix=matrix.concat([0.5,0.5,0.5,0,0]);// blue
matrix=matrix.concat([0,0,0,1,0]);// alpha
var my_filter:ColorMatrixFilter=new ColorMatrixFilter(matrix);
my_sprite.filters=[my_filter];

here you are, a link to a good guide

makevoid
Thanks as well and I've bookmarked that link :) for this project however I need to use exact HEX values and it seems this method would make it hard to get the exact color
Leon
+2  A: 

If controls.btn_Sound.colorChip is a MovieClip or Sprite, you can use the drawing API to change its graphics properties.

So instead of:

colorChip=0xCCCCCC; btnColor_sound.color=colorChip;

do this:

controls.btn_Sound.colorChip.graphics.beginFill(colorChip, 1);
controls.btn_Sound.colorChip.lineStyle(1, 0x000000);
controls.btn_Sound.colorChip.drawRect(0, 0, 10, 10); // fill in this with your colorChip's dimensions
controls.btn_Sound.colorChip.endFill()

Thats a vey basic way to do it. You'll probably want to clear it out each time you switch colors, and maybe modify the line style. Look up the Graphics class and the Drawing API in the AS3 docs, those should help clarify this.

nerdabilly
Thanks, I thought I'd would have to end up going about it this way in the end...
Leon