Here's a function that you can feed a start hex color, end hex color, and
however many steps you want, and it'll generate an Array with hex values for
that many steps:

------------------------------------------------------

function getHexSteps($start:uint, $end:uint, $steps:uint):Array {
        var startVals:Object = {r:$start >> 16, g:($start >> 8) & 0xff,
b:$start & 0xff};
        var changeVals:Object = {r:($end >> 16) - startVals.r, g:(($end >>
8) & 0xff) - startVals.g, b:($end & 0xff) - startVals.b};
        var hexSteps:Array = [];
        var spacing:Number = 1 / ($steps - 1);
        var changeFactor:Number;
        for (var i:int = 0; i < $steps; i++) {
                changeFactor = i * spacing;
                hexSteps[i] = ((startVals.r + (changeFactor * changeVals.r))
<< 16 | (startVals.g + (changeFactor * changeVals.g)) << 8 | (startVals.b +
(changeFactor * changeVals.b)));
        }
        return hexSteps;
}

------------------------------------------------------

For example, getHexSteps(0xFF0000, 0x0000FF, 8) would return an Array that
has 8 steps total, going from red to blue:
[0xff0000, 0xda0024, 0xb60048, 0x91006d, 0x6d0091, 0x4800b6, 0x2400da,
0x0000FF]

So a simple use case that builds 30-pixel blocks across the stage, one for
each step would look like:

var colors:Array = getHexSteps(0xFF0000, 0x0000FF, 8);
var s:Sprite;
for (var i:int = 0; i < colors.length; i++) {
        s = new Sprite();
        s.graphics.beginFill(colors[i], 1);
        s.graphics.drawRect(0, 0, 30, 30);
        s.graphics.endFill();
        addChild(s);
        s.x = i * s.width;
}

Hope that helps.

Jack


-----Original Message-----
From: natalia Vikhtinskaya [mailto:[email protected]] 
Sent: Friday, May 01, 2009 7:38 AM
To: Flash Coders List
Subject: Re: [Flashcoders] Dynamically generate blend colors

Thank you. Yes this class allows to create gradient. But I need code
that allows to have N  MovieClips with blend colors from one to
another.

2009/5/1 Glen Pike <[email protected]>:
> Have a look at the Greensock Tween classes - they might help.
>
> natalia Vikhtinskaya wrote:
>>
>> Hi to all
>> I need dynamically generate blend colors from one color to another.
>> For example RGB:
>> 1Mc 255  255 255
>> 2?
>> 3?
>> 4?
>> 5?
>> 6?
>> 7 136 114 141
>> Is there a way to calculate blend colors for 5 steps?
>> Thanks you for any help or links.
>> _______________________________________________
>> Flashcoders mailing list
>> [email protected]
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>>
>>
>
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>





_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to