Юзаю такой прототипчик (хотя он мне не нравиться, но переделать всё руки не доходят):

Код:
// (c) Nuran.org
//----------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.SetColor = function (color:Number)
{
var n:String = String (Math.random ());
this[n] = new Color (this);
this[n].setRGB (color);
delete n;
delete this[n];
};
//----------------------------------------------------------------------------------------------------
_global.MovieClip.prototype.ColorFade = function (newColor:Number, easeType:Function, time:Number)
{
var mc_mc:MovieClip = this.createEmptyMovieClip (String (Math.round (Math.random () * 999999999999)), this.getNextHighestDepth ());
var n_color:Color = new Color (mc_mc);
n_color.setRGB (newColor);
var n_color_r:Number = n_color.getTransform ().rb;
var n_color_g:Number = n_color.getTransform ().gb;
var n_color_b:Number = n_color.getTransform ().bb;
mc_mc.removeMovieClip ();
var c_color:Color = new Color (this);
var c_color_r:Number = c_color.getTransform ().rb;
var c_color_g:Number = c_color.getTransform ().gb;
var c_color_b:Number = c_color.getTransform ().bb;
var ratio_r:Number = n_color_r - c_color_r;
var ratio_g:Number = n_color_g - c_color_g;
var ratio_b:Number = n_color_b - c_color_b;
var from:Number = 0;
var to:Number = 1;
var t:mx.transitions.Tween = new mx.transitions.Tween (this, "", easeType, from, to, time, true);
t.addListener ({onMotionChanged:function ()
{
c_color.setRGB ((c_color_r + ratio_r * arguments[1]) << 16 | (c_color_g + ratio_g * arguments[1]) << 8 | (c_color_b + ratio_b * arguments[1]));
}});
return t;
};
// Использование:
my_mc.SetColor (0x000000);
my_mc.ColorFade (0xFF0000, mx.transitions.easing.None.easeNone, 4);
// где my_mc — Ваш MovieClip