Este prototipo crea un efecto de reflejo del movieClip sobre el que se aplica, duplicandolo, volteandolo y aplicándole un degradado lineal que lo funde sobre un fondo blanco.
Desgraciadamente, si la imagen es cargada dinámicamente, también hay que cargarla en el duplicado, ya que se duplica el movieClip en su estado inicial (shit!).
Actionscript:
//http:drusunlimited.com
MovieClip.prototype.reflex = function() {
var reflejo:MovieClip = this.duplicateMovieClip(this._name+"reflejo", this.getDepth()+100);
reflejo._yscale = -100;
reflejo._y = this._y+this._height*2;
var degrade:MovieClip = reflejo.createEmptyMovieClip("degrade_mc", 1);
degrade.fillType = "linear";
degrade.colors = [0xFFFFFF, 0xFFFFFF];
degrade.alphas = [100, 80];
degrade.ratios = [150, 255];
degrade.matrix = {matrixType:"box", x:0, y:0, w:this._width, h:this._height, r:90/180*Math.PI};
with (degrade) {
beginGradientFill(fillType, colors, alphas, ratios, matrix);
lineStyle(5, 0xFF00FF, 0);
moveTo(0, 0);
lineTo(this._width, 0);
lineTo(this._width, this._height);
lineTo(0, this._height);
moveTo(0, 0);
endFill();
}
};
//Uso:
obj_mc.reflex();
MovieClip.prototype.reflex = function() {
var reflejo:MovieClip = this.duplicateMovieClip(this._name+"reflejo", this.getDepth()+100);
reflejo._yscale = -100;
reflejo._y = this._y+this._height*2;
var degrade:MovieClip = reflejo.createEmptyMovieClip("degrade_mc", 1);
degrade.fillType = "linear";
degrade.colors = [0xFFFFFF, 0xFFFFFF];
degrade.alphas = [100, 80];
degrade.ratios = [150, 255];
degrade.matrix = {matrixType:"box", x:0, y:0, w:this._width, h:this._height, r:90/180*Math.PI};
with (degrade) {
beginGradientFill(fillType, colors, alphas, ratios, matrix);
lineStyle(5, 0xFF00FF, 0);
moveTo(0, 0);
lineTo(this._width, 0);
lineTo(this._width, this._height);
lineTo(0, this._height);
moveTo(0, 0);
endFill();
}
};
//Uso:
obj_mc.reflex();
