похоже он пересчитывает их каждый раз, когда меняется альфа. в итоге, погонял её туда/сюда, и в РГБ-каналах - мусор.

Код:
// gradient; skip
import flash.display.*
import flash.geom.*
this.createEmptyMovieClip("gradient_mc", this.getNextHighestDepth());
with (gradient_mc) {
matrix = new Matrix();
matrix.createGradientBox(100, 100, Math.PI, -100, -100);
beginGradientFill("radial", [0xFF0000, 0x0000FF], [100, 100], [0, 0xFF],
matrix, "reflect", "linearRGB", 0.9);
moveTo(0, 0); lineTo(0, 200); lineTo(200, 200); lineTo(200, 0); endFill();
}
gradient_mc._visible = false;
// test
this.createEmptyMovieClip("bitmap_mc", this.getNextHighestDepth());
var bmp = new BitmapData(200, 200); bmp.draw (gradient_mc);
var tmp = new BitmapData(200, 200);
bitmap_mc.attachBitmap(bmp, bitmap_mc.getNextHighestDepth());
onMouseUp = function () {
// to very transparent
tmp.fillRect(tmp.rectangle, 0);
tmp.draw(bmp, new Matrix (), new ColorTransform (1,1,1, 2/255, 0,0,0,0)); bmp.draw(tmp);
// back to opaque
tmp.fillRect(tmp.rectangle, 0);
tmp.draw(bmp, new Matrix (), new ColorTransform (1,1,1,0,0,0,0, 255)); bmp.draw(tmp);
}
вывод: альфой злоупотреблять низзя.