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