3d easing timer

Hi, I’m making a 3d carousel based off the one at gotoandlearn.com and I’m having a few problems implementing it to my uses.

Here are my problems:

  1. My easing works, but it’s too fast.
  2. I need to be able to set a limit to how much you can rotate at one time (one character).
    3.At some points, the objects seem to get closer, what error in the code is causing that?

And here’s the code:

[AS]var home:MovieClip = this;
var characters:Array = [[“guy1”], [“guy2”], [“guy3”], [“guy4”]];
var numOfChars:Number = characters.length;
var radiusX:Number = 300;
var radiusY:Number = 75;
var centerX:Number = Stage.width/2;
var centerY:Number = Stage.height/2;
var perspective:Number = 130;
var current:Number = Math.PI2/numOfChars;
var Next:Number = Math.PI
2/numOfChars;
var easing:Number = 0.05;
//////////////////////////////////////////////////////////////////
this.onLoad = function() {
numOfChars = characters.length;
for (var i = 0; i<numOfChars+1; i++) {
var t = home.attachMovie(characters*, characters*, i+1);
t.angle = i*((Math.PI2)/numOfChars);
t.onEnterFrame = mover;
}
};
//////////////////////////////////////////////////////////////////
function mover() {
this._x = Math.cos(this.angle)radiusX+centerX;
this._y = Math.sin(this.angle)radiusY+centerY;
var s = (this._y-perspective)/(centerY+radiusY-perspective);
this._xscale = this._yscale=s
100;
this.swapDepths(Math.round(this._xscale)+100);
this._alpha = (Math.round(this._xscale)-45);
if (Key.isDown(Key.LEFT)) {
var Destination:Number = Next-current;
current += Destination
easing;
this.angle -= centerX+current;
}
if (Key.isDown(Key.RIGHT)) {
var Destination:Number = Next-current;
current += Destination
easing;
this.angle += centerX+current;
}
}[/AS]

All you need is a few items in you libary with the name guy1, guy2, etc.

Thanx for any and all help.