hola muchachos necesito su ayuda tengo este codigo en un archivo de clases q utilizo para cargar imagenes externas y q hagan un loop y efecto y cosas; pero quiciera agregarle un preload por foto pero no se como;

Código ActionScript :

class ImgLoop {
   private var ruta:MovieClip;
   private var listaFotos:Array;
   private var tiempo:Number;
   private var isPaused:Boolean;
   private var contenedor:MovieClip;
   private var paseDeFotos:Number;
   private var foto:Number;
   private var i:Number = 0;
   public var onLoadComplete:Function;
   //-------------------------
   public function ImgLoop(queRuta) {
      ruta = (queRuta == undefined) ? _root : queRuta;
      contenedor = ruta.createEmptyMovieClip("contenedor1", ruta.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor1",contenedor.getNextHighestDepth());
      contenedor.createEmptyMovieClip("contenedor2",contenedor.getNextHighestDepth());
      listaFotos = new Array();
      setTiempo(2000);
      foto = 0;
      //
      contenedor.precarga = new MovieClipLoader();
      
      
      contenedor.precarga.onLoadComplete = function(cont:MovieClip) {
         cont.onEnterFrame = function() {
            if (this._alpha<100) {
               this._alpha += 10;
            } else {
               delete this.onEnterFrame;
            }
         };
      };
   }
   public function setTiempo(queTiempo) {
      tiempo = queTiempo;
   }
   public function setPosicion(queX, queY) {
      contenedor._x = queX;
      contenedor._y = queY;
   }
   public function Setscale(queXscale, queYscale) {
      contenedor._xscale = queXscale;
      contenedor._yscale = queYscale;
   }
   public function indiceZ(queZ) {
      contenedor.swapDepths(queZ);
   }
   public function setMask(mask) {
      contenedor.setMask(mask);
      contenedor.cacheAsBitmap = true;
   }
   public function start() {
      contenedor.contenedor2._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto],contenedor.contenedor2);
      paseDeFotos = setInterval(this, "SiguienteImagen", tiempo);
   }
   public function stop() {
      clearInterval(paseDeFotos);
   }
   public function pause() {
      isPaused = !isPaused;
      isPaused == true ? this.stop() : this.start();
   }
   public function push(queDato) {
      switch (typeof (queDato)) {
         case "string" :
            var extension:String = queDato.substr(queDato.length-3, 3);
            switch (extension) {
               case "xml" :
                  var ruta = this;
                  var xmlFotos:XML = new XML();
                  xmlFotos.ignoreWhite = true;
                  xmlFotos.load(queDato);
                  xmlFotos.onLoad = function(success:Boolean) {
                     if (success) {
                        var xmlNodo:XML = this.firstChild;
                        var total:Number = xmlNodo.childNodes.length;
                        for (var i:Number = 0; i<total; i++) {
                           ruta.listaFotos.push(xmlNodo.childNodes[i].firstChild.nodeValue);
                        }
                     }
                  };
                  break;
               default :
                  listaFotos.push(queDato);
                  break;
            }
            break;
         case "object" :
            listaFotos = queDato;
            break;
      }
   }
   public function pop(queURL) {
      listaFotos.pop(queURL);
   }
   public function shift(queURL) {
      listaFotos.shift(queURL);
   }
   public function unshift(queURL) {
      listaFotos.unshift(queURL);
   }
   public function trace() {
      trace(listaFotos);
   }
   public function remove(queDato) {
      switch (typeof (queDato)) {
         case "number" :
            var temp1:Array = listaFotos.slice(0, queDato-1);
            var temp2:Array = listaFotos.slice(queDato, listaFotos.length);
            listaFotos = temp1.concat(temp2);
            break;
         case "string" :
            for (var num in listaFotos) {
               if (listaFotos[num] == queDato) {
                  remove(Number(num)+1);
               }
            }
            break;
      }
   }
   public function clear() {
      clearInterval(paseDeFotos);
      listaFotos = [];
      SiguienteImagen();
      SiguienteImagen();
   }
   public function exit() {
      removeMovieClip(ruta.contenedor1);
      removeMovieClip(ruta.contenedor2);
      clearInterval(paseDeFotos);
      listaFotos = [];
   }
   public function loadSec(queRaiz:String, queExtension:String, queNum:Number, queFin:Number) {
      var num = queNum;
      var raiz = queRaiz;
      var ext = queExtension;
      if (queFin == undefined) {
         var scope = this;
         var url:String = raiz+num+ext;
         contenedor.precarga.loadClip(url,contenedor.contenedor2);
         contenedor.precarga.onLoadStart = function(mc:MovieClip) {
            contenedor.precarga.unloadClip(mc);
            num++;
            scope.loadSec(raiz,ext,num);
            scope.listaFotos.push(url);
         };
         contenedor.precarga.onLoadError = function(mc:MovieClip, error:String) {
            if (error == "URLNotFound") {
               scope.contenedor.precarga.onLoadStart = null;
               scope.onLoadComplete();
            }
         };
      } else {
         for (var i:Number = queNum; i<=queFin; i++) {
            var url:String = raiz+i+ext;
            listaFotos.push(url);
         }
         this.onLoadComplete();
      }
   }
   //--------------------
   private function SiguienteImagen() {
      (foto<(listaFotos.length-1)) ? foto++ : foto=0;
      var cont:MovieClip = contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-2);
      cont.swapDepths(contenedor.getInstanceAtDepth(contenedor.getNextHighestDepth()-1));
      cont._alpha = 0;
      contenedor.precarga.loadClip(listaFotos[foto],cont);
   }
}

me han dicho q tengo q agregarle 2 eventos aqui (me imagiona q debe ser)

Código ActionScript :

contenedor.precarga = new MovieClipLoader();
      
      
      contenedor.precarga.onLoadComplete = function(cont:MovieClip) {
         cont.onEnterFrame = function() {
            if (this._alpha<100) {
               this._alpha += 10;
            } else {
               delete this.onEnterFrame;
            }
         };
      };
   }



pero la verdad es q no tngo idea de como se hace ni mucho menos como haria para llamarlo desde mi fla; por fa ayudenme