hello olha isto precisa de ser melhorado mas acho que é um principio
import mx.transitions.Tween;
import com.robertpenner.easing.Linear;
import flash.geom.Matrix;
//
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
//
var aCor:Object = new Object();
aCor.a1 = 0xffffff;
aCor.a2 = 0x000000;
//
var matriz:Matrix = new Matrix();
matriz.createGradientBox(200, 200, -Math.PI/2);
//
var twn1:Tween = new Tween(aCor, "a1", Linear.easeNone, aCor.a1, aCor.a2, 6000, true);
var twn2:Tween = new Tween(aCor, "a2", Linear.easeNone, aCor.a2, aCor.a1, 6000, true);
twn1.onMotionChanged = function() {
var effecto:String = "linear";
var cores:Array = new Array(aCor.a1, aCor.a2);
var alphas:Array = new Array(100, 100);
var rats:Array = new Array(0, 255);
mc.beginGradientFill(effecto, cores, alphas, rats, matriz);
mc.moveTo(0, 0);
mc.lineTo(200, 0);
mc.lineTo(200, 200);
mc.lineTo(0, 200);
mc.lineTo(0, 0);
mc.endFill();
};