home *** CD-ROM | disk | FTP | other *** search
- class effects.Fader
- {
- var MC;
- var timer;
- var fadedObjects;
- function Fader(_MC)
- {
- this.MC = _MC;
- this.timer = system.Timer.getInstance(this.MC);
- this.fadedObjects = new Array();
- }
- function applyRed(obj, valM, valO, tr, clrs)
- {
- obj.rMvalue += valM;
- obj.rOvalue += valO;
- clrs.redMultiplier = obj.rMvalue;
- clrs.redOffset = obj.rOvalue;
- tr.colorTransform = clrs;
- }
- function applyGreen(obj, valM, valO, tr, clrs)
- {
- obj.gMvalue += valM;
- obj.gOvalue += valO;
- clrs.greenMultiplier = obj.gMvalue;
- clrs.greenOffset = obj.gOvalue;
- tr.colorTransform = clrs;
- }
- function applyBlue(obj, valM, valO, tr, clrs)
- {
- obj.bMvalue += valM;
- obj.bOvalue += valO;
- clrs.blueMultiplier = obj.bMvalue;
- clrs.blueOffset = obj.bOvalue;
- tr.colorTransform = clrs;
- }
- function applyAlpha(obj, valM, valO, tr, clrs)
- {
- obj.aMvalue += valM;
- obj.aOvalue += valO;
- clrs.alphaMultiplier = obj.aMvalue;
- clrs.alphaOffset = obj.aOvalue;
- tr.colorTransform = clrs;
- }
- function fadeIt(_MC, newcolors, steps, f_After)
- {
- if(steps < 2)
- {
- var newTransform = new flash.geom.Transform(MovieClip(_MC));
- newTransform.colorTransform = newcolors;
- f_After();
- }
- else
- {
- var obj = this.fadedObjects[this.fadedObjects.length] = new Object();
- obj.MC = _MC;
- obj.newTransform = new flash.geom.Transform(MovieClip(_MC));
- var objcolors = obj.objColors = obj.newTransform.colorTransform;
- obj.colorMatrix = newcolors;
- steps++;
- obj.rMstep = (newcolors.redMultiplier - objcolors.redMultiplier) / steps;
- obj.rOstep = (newcolors.redOffset - objcolors.redOffset) / steps;
- obj.rMvalue = objcolors.redMultiplier;
- obj.rOvalue = objcolors.redOffset;
- obj.gMstep = (newcolors.greenMultiplier - objcolors.greenMultiplier) / steps;
- obj.gOstep = (newcolors.greenOffset - objcolors.greenOffset) / steps;
- obj.gMvalue = objcolors.greenMultiplier;
- obj.gOvalue = objcolors.greenOffset;
- obj.bMstep = (newcolors.blueMultiplier - objcolors.blueMultiplier) / steps;
- obj.bOstep = (newcolors.blueOffset - objcolors.blueOffset) / steps;
- obj.bMvalue = objcolors.blueMultiplier;
- obj.bOvalue = objcolors.blueOffset;
- obj.aMstep = (newcolors.alphaMultiplier - objcolors.alphaMultiplier) / steps;
- obj.aOstep = (newcolors.alphaOffset - objcolors.alphaOffset) / steps;
- obj.aMvalue = objcolors.alphaMultiplier;
- obj.aOvalue = objcolors.alphaOffset;
- obj.steps = steps;
- obj.fn = f_After;
- this.timer.addListener(MovieClip("Fader"),0,system.Delegate.create(this,this.fade),0);
- }
- }
- function fadeThis(obj)
- {
- var transf = obj.newTransform;
- var clrs = obj.objColors;
- this.applyRed(obj,obj.rMstep,obj.rOstep,transf,clrs);
- this.applyGreen(obj,obj.gMstep,obj.gOstep,transf,clrs);
- this.applyBlue(obj,obj.bMstep,obj.bOstep,transf,clrs);
- this.applyAlpha(obj,obj.aMstep,obj.aOstep,transf,clrs);
- obj.steps--;
- return obj.steps > 0;
- }
- function fade()
- {
- var obj;
- for(var pos in this.fadedObjects)
- {
- obj = this.fadedObjects[pos];
- var fade = this.fadeThis(obj);
- if(fade == false)
- {
- var fn = obj.fn;
- this.fadedObjects.splice(Number(pos));
- if(this.fadedObjects.length == 0)
- {
- obj.MC.transform.colorTransform = obj.colorMatrix;
- this.timer.removeListener(MovieClip("Fader"));
- }
- fn();
- }
- }
- }
- }
-