похоже тут надо интерполировать каждую сост цвета (р г б) по отдельности
чтот типа-

Код AS3:
function _interpolate(value:Number, valueFrom:Number = 0.0, patternFrom:Number = 0.0, valueTo:Number = 1.0, patternTo:Number = 1.0):Number
{
if(value <= valueFrom) return patternFrom;
if(value >= valueTo) return patternTo;
return ( (value - valueFrom) / (valueTo - valueFrom) ) * (patternTo - patternFrom) + patternFrom;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener);
function mouseMoveListener(event:MouseEvent):void
{
var r:uint = _interpolate(event.stageX, 0, 0xFF, 500, 0x00)
var g:uint = _interpolate(event.stageX, 0, 0x00, 500, 0xFF)
var color:uint = (r << 16) | (g << 8) | 0x00;
graphics.clear();
graphics.beginFill(color);
graphics.drawRect(0, 0, 100, 100);
}
переход из красного в зеленый от координаты мышы (0 - 500)
еще есть Adjust Color . Hue