mcN = "letter";

alphaSpeed = Math.floor((100 - alpha) / increments);

xPosSpeed  = Math.floor(xDis / increments);
yPosSpeed  = Math.floor(yDis / increments);
xDis       = increments * xPosSpeed;
yDis       = increments * yPosSpeed;

xscaleSpeed = Math.floor(100 - xscale) / increments;
yscaleSpeed = Math.floor(100 - yscale) / increments;

aLetters = new Array();

for (i = 0; i< numChar; i++){
  aLetters[i+0] = i;
  var letter =  this[mcN +i];
  letter._visible = false;
  letter.init = letterInit;
  letter.doEffect = effect;
  letter.number = i;
}

function letterInit(){
  this._visible    = true;
  this.step        = 0;
  this.increments  = this._parent.increments;
  this.speed       = this._parent.speed;
  this._xscale     = this._parent.xscale;
  this._yscale     = this._parent.yscale;
  this._alpha      = this._parent.alpha;
  this.alphaSpeed  = this._parent.alphaSpeed;
  this.finalX      = this._x;
  this.finalY      = this._y;
  this._x          = this._x + this._parent.xDis;
  this._y          = this._y + this._parent.yDis;
  this.xPosSpeed   = this._parent.xPosSpeed;
  this.yPosSpeed   = this._parent.yPosSpeed;
  this.xscaleSpeed = this._parent.xscaleSpeed;
  this.yscaleSpeed = this._parent.yscaleSpeed;
}

function effect(){
  this._xscale += this.xscaleSpeed;
  this._yscale += this.yscaleSpeed;
  this._alpha  += this.alphaSpeed;
  this._x      -= this.xPosSpeed;
  this._y      -= this.yPosSpeed;

  this.step += 1;

  if (this.step >= this.increments){
    this._xscale = 100;
    this._yscale = 100;
    this._alpha = 100;
    this._x = this.finalX;
    this._y = this.finalY;
    this.gotoAndStop("end");
  }
}

function shuffle(){
  return Math.floor(Math.random() * 3) -1;
}
if (random == 1){
  aLetters.sort(shuffle);
}

if (reverse == 1){
  aLetters.reverse();
}