Основа только первая функция, все остальное написано для примера. После запуска, надо нажать на красный квадрат.

Код:
import flash.geom.*;
import flash.display.BitmapData;
//// функция маски
function setNewMaska (mcBox:MovieClip, mcMaska:MovieClip) {
trace (this);
var bmp:BitmapData = new BitmapData (mcBox._width, mcBox._height, true, 0xFF);
var bmpMaska:BitmapData = new BitmapData (mcMaska._width, mcMaska._height, true, 0xFF);
bmp.draw (mcBox);
bmpMaska.draw (mcMaska);
var mc:MovieClip = this.createEmptyMovieClip ("mc", this.getNextHighestDepth ());
bmp.copyChannel (bmpMaska, new Rectangle (0, 0, bmp.width, bmp.height), new Point (0, 0), 1, 8);
mc.attachBitmap (bmp, 0);
mc._x = 200;
mc._y = 200;
}
//// функция рисующая прямоугольник
function drawBox (mc:MovieClip, x:Number, y:Number, w:Number, h:Number) {
mc._x = x;
mc._y = y;
mc.moveTo (0, 0);
mc.lineTo (w, 0);
mc.lineTo (w, h);
mc.lineTo (0, h);
mc.lineTo (0, 0);
}
//// создаем маску или рисуем руками на сцене градиентный клип (полностью непрозрачный)
this.createEmptyMovieClip ("mcMaska", 0);
this.mcMaska.lineStyle (0, 0, 0);
var matrix:Matrix = new Matrix ();
matrix.createGradientBox (100, 100, 0, 0, 0);
this.mcMaska.beginGradientFill ("radial", [0xFFFFFF, 0x000000], [100, 100], [0x00, 0xFF], matrix);
drawBox (this.mcMaska, 100, 100, 100, 100);
this.mcMaska.endFill ();
//// создаем маскируемый клип
this.createEmptyMovieClip ("mcBox", 1);
this.mcBox.lineStyle (0, 0, 0);
this.mcBox.beginFill (0xFF0000);
drawBox (this.mcBox, 300, 100, 100, 100);
this.mcBox.endFill ();
this.mcBox.onRelease = function () {
setNewMaska (this, mcMaska);
};