Hola espero me puedan ayudar a identificar un problema, porque honestamente yo no le veo el error (o mas bien si lo veo pero, no como solucionarlo).
Tengo este codigo, y creo que mi problema esta en mis listeners:

Código :

function findAlbums(albumsDescryption, currentAlbum, showPhoto,isNewAlbum) {
   var foundAlbum = 0;
   for (var ui=0; ui<albumsDescryption.children().length(); ui++) {
      if (albumsDescryption.children()[ui].attribute("name").toLowerCase() == currentAlbum.toLowerCase()) {
         foundAlbum = 1;
         var photoPage = albumsDescryption.children()[ui];
         var numPhotosOnPage = photoPage.children().length();
         break;
      }
   }   
   if (foundAlbum !== 0) {
         var isNewAlbum = 0;
         var showPhoto = 0;
         displayPhoto(1,-112,35,showPhoto,photoPage);
         
   foundAlbum = 0;
   } else {
      //trace ("NADA NADA");
   }   
   //////Por lo que he probado, el codigo de arriba solo se ejecuta 1 vez,
   //////y se actualiza cuando cambiamos de album con un Combobox.
   //////De momento solo me parece relevante para decir que el pasa
   //////a la siguiente funcion los valores (1,-112,35,showPhoto,photoPage),
   //////la primera vez que arranca el flash o cambio de album
}

///////DE AQUI EN ADELANTE ES MI PROBLEMA....
///////esta parte creo funciona bien, de aqui sale el # de foto que se mostrara
///////segun la logica deberia ser 1,2,3,4 al hacer los clicks
function displayPhoto(direction,inicio,fin,showPhoto,photoPage) {   
   var numPhotosOnPage = photoPage.children().length();
   showPhoto += direction;
   if (showPhoto>numPhotosOnPage) {
      showPhoto = 1;
   } else if (showPhoto<1) {
      showPhoto = numPhotosOnPage;
   }   
   getPhoto(showPhoto,photoPage);
}
function getPhoto(showPhoto,photoPage) {
   trace("---------->");
   /////EL GRAN PROBLEMA.....
   /////Saque pruebas eliminado todos los parametros extras dejando solo las funciones SOLAS(),
   //////y eso me permite sacar el pedazo que trabaja con los botones, fuera de esta funcion.
   ///////Asi el ciclo sale bien. UN CLICK = UN TRACE
   //////pero debido a que las funciones necesitan pasarse valores una a otra, al sacar el pedazo,
/////me marca errores.
   //////PERO MI MALDITO ERROR, hace que salga UN CLICK = se multiplican los ciclos x2,x4,x8.
   ////// 
   fwdButton.addEventListener(MouseEvent.CLICK, adelante);
   bkButton.addEventListener(MouseEvent.CLICK, atras);      
   function adelante(event:MouseEvent):void{
         displayPhoto(1,-112,25,showPhoto,photoPage);
   }
   function atras(event:MouseEvent):void{
       displayPhoto(-1,35,-134,showPhoto,photoPage);
   }   
   var numPhotosOnPage = photoPage.children().length();
   var whichPhoto = showPhoto;   
   //////Creo que la parte que viene tampoco tiene que ver con el problema.
   //////la elime tambien y aun consigo el ciclo raro...
   ////.......CODIGO.........
}


que opciones tengo, como podría sacar la parte de los botones fuera de la funcion sin que me marque error?
Existe alguna opción para trabajar con esa parte dentro de la función, pero que no de el ciclo raro?
El codigo es una adaptacion de un codigo en MX, consegui pasarlo a AS2 y funciona bien, pero no consigo pasarlo al AS3. En AS2 la parte de los botones funciona estando fuera.