
Etiquetas: BitmapData Bitmap draw cachaAsBitmap createGradientBox beginGradientFill
function Reflejo(mc) {
//Creo un objeto Bitmap en el que esté dibujado el clip que paso como parámetro //Le doy la vuelta indicando que scaleY = -1;var bmd:BitmapData = new BitmapData(mc.width,mc.height);
bmd.draw(mc);
var bm:Bitmap = new Bitmap(bmd);
bm.x = 0;
bm.scaleY = -1;
bm.y = mc.height * 2;
bm.cacheAsBitmap = true;
//Creo un degradado para la mascara por medio de createGradientBox. Jugando con los valores //de alphas y ratios se puede ajustar la longitud del reflejo. var mascara = new Sprite;
var tiporelleno:String = GradientType.LINEAR;
var colores:Array = [0x00000000, 0x00000000];
var alphas:Array = [0.5, 0];
var ratios:Array = [0, 180];
var matr:Matrix = new Matrix();
matr.createGradientBox(mc.width, mc.height, Math.PI/2, 0, 0);
var spreadMethod:String = SpreadMethod.PAD;
mascara.graphics.beginGradientFill(tiporelleno, colores, alphas, ratios, matr, spreadMethod);
mascara.graphics.drawRect(0,0,mc.width,mc.height);
mascara.x=0
mascara.y=mc.height;
mascara.cacheAsBitmap = true;
//Aplico la máscara a la copia del clip, y añado ambos al clip bm.mask = mascara;mc.addChild(bm);
mc.addChild(mascara);
}Reflejo(Imagen_mc);