Hello everybody,
Trying to find out how i could make a movieclip to gradually turn to grayscale, i came across this nice class here:
/***********************************************************************
* SEPIA TRANSITION CLASS-FILE
* put this file into [Flas 8 folder]\en\First Run\Classes\mx ransitions
* restart Flash
* ----------------------------------------------------------------------
* SAMPLE USAGE:
* import mx.transitions.*;
* import mx.transitions.easing.*;
* TransitionManager.start([linkage to your MovieClip],
{type:Sepia,
direction:Transition.[IN or OUT],
duration:[seconds:Number],
easing:None.easeNone,
tint:[256 bit color:Number]});
* ----------------------------------------------------------------------
* © WVXVW
************************************************************************/
import mx.transitions.Transition;
import mx.transitions.TransitionManager;
import flash.filters.ColorMatrixFilter;
class mx.transitions.Sepia extends Transition {
#include "Version.as"
public var type:Object = Sepia;
public var className:String = "Sepia";
private var myColorMatrix_filter:ColorMatrixFilter;
private var __tgt:MovieClip;
private var __tint:Number = 0x000000;
private var __to:Object = {};
function Sepia(content:MovieClip, transParams:Object, manager:TransitionManager) {
this.init(content, transParams, manager);
}
function init(content:MovieClip, transParams:Object, manager:TransitionManager):Void {
super.init(content, transParams, manager);
this.myColorMatrix_filter = new ColorMatrixFilter();
this.__tgt = content;
this.__tint = transParams.tint;
this.__to = toRGB(this.__tint);
}
private function _render(p:Number):Void {
var rc:Number = 0.3086;
var gc:Number = 0.6094;
var bc:Number = 0.0820;
var myElements_array:Array = [1-p*(1-rc)+this.__to._r*p, p*gc, p*bc, 0, 0,
p*rc, 1-p*(1-gc)+this.__to._g*p, p*bc, 0, 0,
p*rc, p*gc, 1-p*(1-bc)+this.__to._b*p, 0, 0,
0, 0, 0, 1, 0];
this.myColorMatrix_filter = new ColorMatrixFilter(myElements_array);
this.__tgt.filters = [myColorMatrix_filter];
}
private function toRGB(_num:Number):Object {
var c_obj:Object = {_r:((_num >> 16) & 0xff)/255, _g:((_num >> 8) & 0xff)/255, _b:(_num & 0xff)/255};
return c_obj;
}
}
My problem is that when i changed direction from Transition.IN to Transition.OUT, the movie clip disappears at the end of the tween (see the attached file). Any ideas?