Poor Color Transform Class

I’m not sure how many of you have used the Custom ColorTransform Class that Sham Bhangal wrote in O’Reilly’s Flash Hacks… if you guys have, you will have noticed that there is issues with it, it’s a combination of being poorly wrote and some of Flash’s problems, I just spent the last two hours trying to figure out what was going on, here’s the better version of the Custom ColorTransform Class, (if anyone finds something wrong with it please tell me);

class Transform {
private static var NEG_TRANS:Object = {ra:-100, rb:255, ga:-100, gb:255, ba:-100, bb:255, aa:100, ab:0};
private static var NEUTRAL_TRANS:Object = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:0};
private static var BLACK_TRANS:Object = {ra:100, rb:-255, ga:100, gb:-255, ba:100, bb:-255, aa:100, ab:0};
private static var WHITE_TRANS:Object = {ra:100, rb:255, ga:100, gb:255, ba:100, bb:255, aa:100, ab:0};
private static var RATE:Number = 32;
private var interval:Number;
private var startTime:Number;
private var colorObj:Color;
private var diffTrans:Object;
private var tempTrans:Object;
public function Transform(targetClip:MovieClip) {
colorObj = new Color(targetClip);
diffTrans = new Object();
tempTrans = new Object();
}
public function invert(duration:Number):Void {
applyTransform(NEG_TRANS, duration);
}
public function reset(duration:Number):Void {
applyTransform(NEUTRAL_TRANS, duration);
}
public function fadeToBlack(duration:Number):Void {
applyTransform(BLACK_TRANS, duration);
}
public function fadeToWhite(duration:Number):Void {
applyTransform(WHITE_TRANS, duration);
}
private function applyTransform(transObject:Object, duration:Number):Void {
//trace('applyTransform');
//var diffTrans:Object = new Object();
tempTrans = colorObj.getTransform();
for (var i in transObject) {
diffTrans* = (transObject*-tempTrans*)/(duration/RATE);
//trace (diffTrans*);
}
startTime = getTimer();
interval = setInterval(this, "transition", RATE, transObject, diffTrans, duration);
//trace(interval);
}
private function transition(transObject:Object, diffTrans:Object, duration:Number):Void {
var testValue:Number = 100;
for (var i in diffTrans) {
tempTrans* += diffTrans*;
}
colorObj.setTransform(tempTrans);
if (Math.abs(tempTrans.ra-transObject.ra)<3 && Math.abs(tempTrans.ga-transObject.ga)<3 && Math.abs(tempTrans.ba-transObject.ba)<3) {
if (Math.abs(tempTrans.rb-transObject.rb)<3 && Math.abs(tempTrans.gb-transObject.gb)<3 && Math.abs(tempTrans.bb-transObject.bb)<3) {
colorObj.setTransform(transObject);
clearInterval(interval);
}
}
updateAfterEvent();
}
public function die():Void {
}
}

I wasn’t doing this to be a jerk or anything, just so everyone knows, just trying to help out.
-Michael