ActionScript - Problema con funcion que hace una secuencia

 
Vista:

Problema con funcion que hace una secuencia

Publicado por Javier Valdivia (1 intervención) el 21/10/2010 02:21:35
Hola, tengo un codigo en actionscript 2.0 para cargar unos swf externos desde loadVars y colocarlos en un movieclip mostrado en mi pelicula principal. El codigo que tengo funciona muy bien de manera independiente, el problema viene con este otro codigo que sigue:

var cargaahora = function() {
if(mas<_global.maximo) {
mas++; } else { mas=1;}
cargaadelante("featured"+mas+".swf",_root.featured.manejadores["instancia"+mas]);
}
var mas:Number = 1;
var contador = setInterval(cargaahora,3000);

Que es un codigo adicional que me sirve para cargar uno tras otro los swf externos y que el visitante vea una secuencia tipo slider/fade entre uno y otro y a la vez activar su "manejador" que para el caso de mi codigo se llama "instancia".

La funcion cargaadelante tiene dos parametros: (ruta,instancia) La ruta es el archivo externo que se va a cargar e instancia es su repectivo manejador. _global.maximo es el numero tope de archivos que se cargan, asi cuando llegue al maximo la funcion hace que la variable "mas" regrese a 1.

Bueno el problema esta en que cuando me toca que se muestre el SEGUNDO ARCHIVO (osea cuando ruta sea "featured2.swf " y la instancia sea "instancia2" su respectivo manejador no se activa sino se queda en el 1, pero cuando me toca la 1 o la 3 o la 4 o la 5 y asi... siempre se activa bien el manejador, el problema esta solamente en el segundo manejador.

Por favor, indiquenme ¿que estoy haciendo mal?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema con la activación del manejador en la secuencia de carga de SWF externos

Publicado por Alejandro (369 intervenciones) el 27/06/2023 18:31:24
El problema en el código proviene de cómo se está asignando el valor de "mas" en la función cargaahora. Al parecer, cuando el valor de "mas" es igual a 2, no se activa correctamente el manejador correspondiente.

Para solucionar esto, puedes ajustar la lógica de la función cargaahora de la siguiente manera:

1
2
3
4
5
6
7
var cargaahora = function() {
  mas++;
  if (mas > _global.maximo) {
    mas = 1;
  }
  cargaadelante("featured" + mas + ".swf", _root.featured.manejadores["instancia" + mas]);
};

En esta modificación, primero incrementamos el valor de "mas" y luego verificamos si ha superado el máximo permitido. Si es así, volvemos a asignarle el valor de 1. Esto asegurará que se active correctamente el manejador correspondiente en todas las iteraciones.

Recuerda reemplazar el código original por esta versión modificada y probar nuevamente la secuencia de carga de los archivos SWF externos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar