Let's look at a typical class easing method like in the Back class for example:

public static function easeIn(t:Number, b:Number, c:Number,
d:Number, s:Number = 0):Number
{
if (!s)
s = 1.70158;

return c * (t /= d) * t * ((s + 1) * t - s) + b;
}

We recognize our 4 numbers here t: initial time, b: initial value, c: final value, and d: duration. But there's another one: s, that's the amplitude of the back effect. Change this hard coded value to any number you want to get a different back effect, or even better create a public method and then set s as an instance property:

public var amplitude:Number;
public function easeIn(t:Number, b:Number, c:Number,
d:Number):Number
{
return c * (t /= d) * t * ((amplitude + 1) * t - amplitude) + b;
}

Then in your code create an instance of the Back class:

var theBack:Back = new Back();

set the amplitude:

theBack.amplitude = 10;

then run the tween!

var Ytween:Tween = new Tween(this,"theNumber",theBack.easeIn,0,300,1,true);

Now you can also create different effect with the same easing method:

var theBack:Back = new Back();
theBack.amplitude = 1;
var theBackY:Back = new Back();
theBackY.amplitude = 20;
var Xtween:Tween = new Tween(tween_mc,"x",theBack.easeIn,tween_mc.x,tween_mc.x+100,2,true);
var Ytween:Tween = new Tween(tween_mc,"y",theBackY.easeIn,tween_mc.y,tween_mc.y+100,2,true);

Up to you to go through all easing classes and mess with their formulas. Now let's explore a bit custom easing.

We know that any easing function needs to be able to end up no matter what with the right value. Remember the crazyTween function was giving back random values to the tween while the tween was running but at the final call, it was giving the right value so the object would end up at the right place. Any custom easing method or function should do just that, ending with the right value, but between the start of the tween and the end, you are free to apply any mathematical equation. let's try a few.

function shakeTween(TimeOrigin:Number,InitialValue:Number,FinalValue:Number,FinalTime:Number):Number{
var i:Number = 0;
if(TimeOrigin/FinalTime<1){
i = Math.random()*FinalTime*10;
}else {i = 0}
return InitialValue+i+FinalValue*(TimeOrigin/FinalTime)
}

This will give a shake effect to your tween.

var i:Number = 0;
var current:Number = 0;
function clockTween(TimeOrigin:Number,InitialValue:Number,FinalValue:Number,FinalTime:Number):Number{

if(TimeOrigin>i){
i += FinalTime/3;
current = InitialValue+FinalValue/FinalTime*(TimeOrigin/FinalTime)
return current;}
return current;
}

I created this one to create a clock effect with a rotation property. Now you know how to create and apply your own easing function so go get your old math books and then share with us your creations!