This is a classic object oriented problem. The MovieClip can´t know
that the rbg property has changed from his ColorTransform property.
There ar 3 solutions:
The first is the easier for Macromedia but worst for us programers.
The movieClip, update its ColorTransform when you set it, like this
mc.colorTransform = new ColorTransform....

The second solution would be with listeners. When you assign
mc.colorTransform = new ColorTransform, the movie clip do
colorTransform.addEventListener(COLOR_CHANGE, ....

The third would be the color transform has a reference to the
movieClip and do the same done on the first situation, so when you
assign colorTransform.rbg = 0xFF0000 the color transform do:
parentMovieClip.colorTransform = this (where this is the
colorTransform)

Those solutions are fine if you want to change only one property, but
if you change 6 properties, the movieClip would be updated 6 times on
the last two solutions. Unless the movieClip waits to update only at
some internal refresh frame event (but this is with macromedia).

My suggestion is create a helper class that would do the follow?

new HelperColorTransform(movieClip).rgb = 0xFF0000;
and inside you would do what you can´t do with one line of code.

Let´s extends the discussion, since this problem exists in many places of Flash.

On 8/2/06, Mark Walters <[EMAIL PROTECTED]> wrote:
What would be the quickest most efficient way to apply a
ColorTransform and set the rgb property on a MovieClip?

With the Color object, you could use the following line:

(new Color(my_mc)).setRGB(0xFFFF00);

... and if you extended the Color class and added an rgb getter
setter, the following would work as well:

(new XColor(my_mc)).rgb = 0xFFFF00;

... but with ColorTransform, I can't seem to find a single line
solution. I've tried:

(my_mc.transform.colorTransform = new ColorTransform ()).rgb = 0xFFFF00;

... which doesn't work, although it also doesn't throw an error.
I know that I can pass in all the parameters (rm, gm, bm, etc) into
the ColorTransform constructor and get it to work on a single line,
but I've extended the ColorTransform class and want to be able to call
the methods and properties the most efficiently.

If anyone could help, that would be very much appreciated.

Thanks.
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to