Представьте себе цвет как комплекс трёх параметров - красный, зелёный и синий(RGB).
Один цвет хранится в четырёх байтах, последний из которых обычно пустой при отсутствии transparency(прозрачности).
Чтобы получить из цвета компоненты, необходимо использовать битовые сдвиги.
Код AS3:
var color:uint = 0x0F41AC;
var rgb:Object = {};
rgb.red = color >> 16 & 0xFF; //сдвигаем на 2 байта, чтобы остался только первый байт(2 байта обрезаются)
rgb.green = color >> 8 & 0xFF; //сдвигаем на 1 байт, чтобы остались только 2 первых байта, и обрезаем побитовым И
rgb.blue = color & 0xFF; //обрезаем и остаётся только последний байт
var rebuiltColor:uint = ((rgb.red << 16) | (rgb.green << 8) | rgb.blue) & 0xFFFFFF; //так собираем компоненты назад.
Ваша задача выбрать в фотошопе 2 цвета, скопировать их компоненты(или HEX-код, который будет программно разбиваться на компоненты) и сделать плавный переход из одного в другой. Т.е. должен получиться метод, возвращающий цвет в зависимости от параметра(0~1)
Воспользоваться можно любой из интерполяций, линейная - самая быстрая.
Код AS3:
public static function interpolate(a:Number, b:Number, x:Number, z:Number = 0, c:Number = 0):Number
{
switch (interpolation)
{
case LINEAR:
return a * (1 - x) + b * x;
break;
case COSINE:
var ft:Number = x * 3.1415927;
var f:Number = (1 - Math.cos(ft)) * .5;
return a * (1 - f) + b * f;
break;
case CUBIC:
var P:Number = (c - b) - (z - a);
var Q:Number = (z - a) - P;
var R:Number = b - z;
var S:Number = a;
return P*x*x*x + Q*x*x + R*x + S;
break;
}
return 1;
}