Este prototipo pasa a blanco y negro el movieClip sobre el que se aplica. La primera versión sencillamente desatura, y la segunda crea un duplicado sobre el mc original para tener disponible el item original en color, para por ejemplo un rollOver ;)
Actionscript:
import flash.filters.ColorMatrixFilter;
MovieClip.prototype.desaturate = function():Void {
var bn_filter:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]);
this.filters = [bn_filter];
};
//Uso:
mc.desaturate();
MovieClip.prototype.desaturate = function():Void {
var bn_filter:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]);
this.filters = [bn_filter];
};
//Uso:
mc.desaturate();
Actionscript:
import flash.filters.ColorMatrixFilter;
MovieClip.prototype.desaturateAndDuplicate = function():Void {
var bn_filter:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]);
var bmp = new flash.display.BitmapData(this._width, this._height, true, 0x00000000);
var bn:MovieClip = this._parent.createEmptyMovieClip("bn_mc", 2);
bn.attachBitmap(bmp,0);
bmp.draw(this);
bn.filters = [bn_filter];
this._visible = false;
};
//Uso:
mc.desaturateAndDuplicate();
MovieClip.prototype.desaturateAndDuplicate = function():Void {
var bn_filter:ColorMatrixFilter = new ColorMatrixFilter([0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]);
var bmp = new flash.display.BitmapData(this._width, this._height, true, 0x00000000);
var bn:MovieClip = this._parent.createEmptyMovieClip("bn_mc", 2);
bn.attachBitmap(bmp,0);
bmp.draw(this);
bn.filters = [bn_filter];
this._visible = false;
};
//Uso:
mc.desaturateAndDuplicate();
Imprescindible haber importado el filtro ColorMatrixFilter.
