Muchas gracias Gustavo, estoy totalmente de acuerdo contigo en lo de la
gestión de flujo por código, pero es que yo lo había intentado antes y me
había dado problemas. Me he dado cuenta que uno de los problemas era una
estupidez como poner el goto al fotograma 0 que NO EXISTE....aaahhhggg. La
maldita manía de los programadores con el 0, que nos lo han metido con
calzador para los arrays, y luego los metemos hasta en la sopa sin darnos
cuenta.

Tu código va de lujo, es parecido a lo que tenia yo antes, pero sin
MovieClipLoader, y con otra diferencia, y es que yo no puedo cargar cada
banner cada vez que se muestra. Yo hago una carga inicial y luego el
problema de sincronización me viene con los movieclips ya cargados, porque
con la comprobación de _currentframe == _totalframes no sé por qué pero se
come el último fotograma del banner.

Si queréis hacer la prueba haceros un banner con 10 fotogramas (banner1), en
cada uno poned un campo de texto que ponga el número de fotograma, copiad
este banner y cambiadle el fondo para que sea el banner2.
Copiaros este código siguiente, poned en el flash del rotatorio una
velocidad de 1 fotograma por segundo y veréis que al llegar al fotograma 9
del banner pasa automáticamente al siguiente banner, sin mostrar el
fotograma 10 del banner. Esto no es muy problemático si los banners tienen
una velocidad normal, pero yo estaba haciendo pruebas con 1 fotograma por
segundo y lo he descubierto.

//************************ INICIALIZACIÓN ******************************
var i:Number=0; // Identificador numérico para movernos de un MC a otro
var lista:Array;  // Lista de películas de MovieClips que se cargarán
var listaMC:Array;  // Lista con los objetos MC para poder acceder a ellos
lista = new Array("Images/prueba1.swf","Images/prueba2.swf");
listaMC = new Array(lista.length);

//************************ FUNCIONES ************************************
function cargaInicial(){
 for (var x:Number=0; x<lista.length; x++){
  createEmptyMovieClip("banner"+x, x+5);
  listaMC[x] = _root["banner"+x];
  loadMovie(lista[x], listaMC[x]._name);
  listaMC[x]._alpha = 0;
  listaMC[x].stop();
 }
 //Coloco el banner primero para mostrarlo
 listaMC[0]._alpha = 100;
 listaMC[0].gotoAndPlay(1);
}
function compFin(){
  // Compruebo si ha llegado al fin del banner
 if(_root["banner"+i]._currentframe == _root["banner"+i]._totalframes){
  _root["banner"+i]._alpha=0;
  _root["banner"+i].stop();
  cambiaBanner();
 }
}
function cambiaBanner(){
  // Cambio de banner adelantando el contador o volviendo al 0
 i = (i+1)%lista.length;
 _root["banner"+i]._alpha=100;
 _root["banner"+i].gotoAndPlay(1);
}

//************************ ACCIONES DEL FOTOGRAMA
***************************
cargaInicial();
this.onEnterFrame = function(){
 compFin();
}
-----------------------------------------------------
ASNativos
www.5dms.com
subscripciones/desubscripciones
http://asnativos.5dms.com
-----------------------------------------------------

Reply via email to