Comunidad de diseño web y desarrollo en internet online

Ayuda sobre Cargador Externo... Preloader externo AS2

Citar            
MensajeEscrito el 10 Ago 2010 11:02 pm
Hola, tengo un problema con un cargador externo en flash. Es un cargador que vi en internet, no recuerdo bien la fuente pero me pareció muy práctico. Mi problema es que funciona muy bien si se prueba localmente, per al subirlo a un servidor el cargador no funciona. Es un swf que llama a un jpg externo (lo pienso usar para cargar un swf externo)... Aquí posteo el código.

Código :

var vacio:MovieClip = this.createEmptyMovieClip("vacio",1);
var loop:MovieClip = this.createEmptyMovieClip("loop", 0);
vacio._y = 0;
var vacio:MovieClip;
barra._xscale = 0;
reloj._alpha = 0;

function cargador(archivo_externo) {
   vacio.loadMovie(archivo_externo);
   reloj._alpha = 100;

   loop.onEnterFrame = function () {
      total = vacio.getBytesTotal();
      cargados = vacio.getBytesLoaded();
      i = Math.floor((cargados*100)/total);
      txt_procentaje.text = i + " %" + "Cargando";
      barra._xscale = i;
      reloj.gotoAndStop(i);
      if(i >= 100) {
         delete loop.onEnterFrame;
         txt_procentaje.text = "";
         barra._xscale = 0;
         reloj._alpha = 0;
      }
   };
}

btn_red.onRelease = function () {
   cargador("externos/externo_01.swf");
}
btn_blue.onRelease = function () {
   cargador("externos/externo_02.swf");
}
btn_yellow.onRelease = function () {
   cargador("externos/externo_03.swf");
}


El MC "reloj" es una animación con 100 keyframes que se muestra completo cuando termina de cargar. Y el MC "barra" es una barra que se llena cuando se termina de cargar.
Los botones detonan el cargador y sí llaman al swf externo, pero no se muestra la animación del reloj ni de la barra. Espero me puedan ayudar con este problema.

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 13 Ago 2010 09:27 pm
No se ve nada raro ...¿tienes la URL donde funciona mal?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 13 Ago 2010 10:30 pm
Sí claro... el URL es:

http://demo-alterarte.netai.net/prueba/

los botones son los que disparan la función del cargador, si carga las imagenes, pero no se muestran los mc. Abajo si jala bien pero arriba no. Si quieres has el ejercicio con este código y súbelo a un servidor. Se me ocurre que pueda estar leyendo el peso del contenedor "vacio" dónde se cargan los swf externos y que estando arriba no tenga una lectura acertada. En realidad no se bien cual es el error

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 14 Ago 2010 04:30 am
Cargan los tres, aunque el tercero no lo veo, posiblemente tenga las coordenadas raras. Lo que pasas es que las im{agenes son enormes, la primera de 372 Kb tarda 9 segundos en mi ADSL, la segunda de 695 Kb tarda 6 segundos (curiosamente menos) A todas luces te falta agregar un preloader ... y tener paciencia hasta que carguen, especialmente si tienes una conexión lenta.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Ago 2010 04:13 pm
Mmm ese es el problema... Existe un preloader, es una barra de texto que muestra el porcentaje cargado y una animación que se llama "reloj" (es un reloj que muestra el procentaje cargado, al llenarse significa que es el 100%) o sea, en el preloader se dispara una animación y el texto del porcentaje que debe de cargar. Cuando hago el test localmente, funciona perfectamente. Cuando subo mi swf a mi servidor, no se muestra el texto de carga ni la animación. He subido mi swf a dos servodores distintos y en ninguno de los dos se muestra. Mmm no sé como adjuntar un archivo desde acá... te puedo pasar un hipervinculo para que lo checes.

Saludos

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 16 Ago 2010 10:25 pm
Hola Jorge, gracias por tu pronta respuesta! Ya me salió el cargador, ya encontré donde estuvo el error, de todos modos gracias por la ayuda. Publico el código arreglado y explico dónde estuvo el error, por si alguien más quiere usar el codigo y les sirve para algo:

Código ActionScript :

var vacio:MovieClip = this.createEmptyMovieClip("vacio", 1);
var loop:MovieClip = this.createEmptyMovieClip("loop" , 0);
vacio._y = 0;

barra._xscale = 0;
reloj._alpha = 0;

function cargador(archivo_externo) {
   vacio.loadMovie(archivo_externo);
   loop.onEnterFrame = function () {
      reloj._alpha = 100;
      total = vacio.getBytesTotal();
      cargados = vacio.getBytesLoaded();
      i = Math.floor((cargados*100)/total);
      txt_procentaje.text = i + " %" + "Cargando";
      barra._xscale = i;
      reloj.gotoAndStop(i);
      if(i >= 100) {
         delete onEnterFrame;
         txt_procentaje.text = "";
         barra._xscale = 0;
         reloj._alpha = 0;
      }
   };
}

btn_red.onRelease = function () {
   cargador("externos/externo_01.swf");
}

btn_blue.onRelease = function () {
   cargador("externos/externo_02.swf");
}

btn_yellow.onRelease = function () {
   cargador("externos/externo_03.swf");
}


ok, el error estaba en esta parte:
antes:

Código ActionScript :

if(i >= 100) { 
delete loop.onEnterFrame; 

despues:

Código ActionScript :

if(i >= 100) { 
delete onEnterFrame;


Me imagino que al dar la orden de borrar el onEnterFrame del MC loop, lo hacia directamente sin esperar a que "i" fuese mayor o igual a 100. Quizá "i" en algún momento me cargó el valor de 100 y ese fue el problema. Aún no entiendo porqué con el código anterior funcionaba bien abajo y arriba no. Si alguien me pudiera explicar en teoría como funciona la carga del servidor y porqué se pudo haber dado este error se los agradecería. Saludos que estén bien

Por chamanmazateco

8 de clabLevel



Genero:Masculino  

safari
Citar            
MensajeEscrito el 16 Ago 2010 11:56 pm
En realidad antes de que empiece a cargar, ambos valores dan -1 (el total y lo cargado) y se dispara el error, en realidad en la condición siempre hay que poner:

if(i>=100 && total>4)

Esto hace que no se disparew esta falla. En cuanto al onEnterframe, dado que está declarado en loop, tiene sentido borrarlo en loop (o usar this), no veo que el cambio esté relacionado con el fallo. Asegúrate que has borrado el cache cada vez que lo pruebes, sino se carga del cache y es lo mismo que en local, aunque esté en el servidor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.