Comunidad de diseño web y desarrollo en internet online

Preload a 3.000 x hora

Citar            
MensajeEscrito el 12 Oct 2010 02:34 pm
Hola, tengo una duda desde mucho tiempo, cuando uno pone un preload normalmente se hace para que la gente vea algo en pantalla si la peli es pesada hasta que salga la animacion. Ahora bien, cual es el limite entre ponerlo y no ponerlo. Porque me pasa que cuando la peli es menor a 300k y la conexion es medianamente rapida, solo se ve una mancha, el preload pasa a 3000 por hora y no queda nada bien.
He intentado solucionar esto mediante un invento muy casero, pero jeje, no me funciono... primero muestro el metodo normal y desp el casero.

Metodo normal:
barra_mc (con nombre de instancia barra): donde hay una animacion de 100 frames de una barra que se completa con un stop() en el primer frame.
accion:

Código ActionScript :

stop();
function cargando() {
   total = _root.getBytesTotal();
   cargados = _root.getBytesLoaded();
   porcentaje = Math.floor((cargados/total)*100);
   barra.gotoAndStop(porcentaje);
   if (cargados == total) {
      clearInterval(intpre);
      gotoAndPlay(3);
   }
}
intpre = setInterval(cargando, 1);


Metodo Casero:

En el frame 1

Acción:

Código ActionScript :

stop();
function cargando() {
   total = _root.getBytesTotal();
   cargados = _root.getBytesLoaded();
   if (cargados == total) {
      clearInterval(intpre);
      gotoAndPlay(3);
   }
   else {gotoAndStop (2);
}
}
intpre = setInterval(cargando, 1);


En el frame 2

barra_mc (con nombre de instancia barra): donde hay una animacion de 100 frames de una barra que se completa, con un stop() en el primer frame y en el 101 otro stop() con un mc que dentro tiene una animacion de 20 frames, algo con el grafico final de la barra (se agranda y se achica, cualquier efecto) y en el ultimo frame de este mc una accion :

Código ActionScript :

_root.gotoAndPlay (3);

mi intención es que cuando termine este efecto vaya a la linea de tiempo principal y continue.

Acción:

Código ActionScript :

stop();
function cargando() {
   total = _root.getBytesTotal();
   cargados = _root.getBytesLoaded();
   porcentaje = Math.floor((cargados/total)*100);
   barra.gotoAndStop(porcentaje);
   if (cargados == total) {
      clearInterval(intpre);
   }
}
intpre = setInterval(cargando, 1);



Lo que hace este segundo ejemplo es, si la pelicula ya esta cargada bytesloaded es igual a bytestotales va al frame 3 y todo bien, pero si tiene que cargar la peli por primera vez hace el proceso de la barra hasta el 100 % y salta al frame 3 de la principal y se queda parada.


En donde me equivoco, o capaz que hay otro metodo para que no se vea una mancha rapida en las peliculas pequeñas... GRACIAS!!!!

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Oct 2010 04:03 pm
Nadie te asegura que el usuario tenga conexión rápida o que tu servidor no esté muy cargado, deja un preload normal ... si casi no lo ven, seguro los usuarios estarán agradecidos

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Oct 2010 07:05 pm
jajaja, que yo haya escrito todo eso para que me digas esto, jajajaja... nooooooo. Tiene que haber alguna opción para hacer, siempre y cuando sea neceserio, que la grafica del preload sea mas lenta. Como contaba antes, se ve algo, pero como es tan rapido se ve feo... jeje, podría ponerle una foto de 600kb más o menos, en un mc y alpha 0, pero no me gustaria.
En realidad es solo para una vez o si se pasa el ccleaner o un limpiador, porque después se queda guardado, no?. Gracias.

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 12 Oct 2010 07:06 pm
Ponle un stop y usa el getTimer() para dejarlo clavado los segundos que quieras que el usuario se quede mirando tu preload

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 12 Oct 2010 07:18 pm
que bueno, voy a investigar, nunca use esa sentencia, si veo que no me funciona vuelvo a escribir y si encuentro la solución también, gracias.

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Oct 2010 12:55 am
ya está arreglado, a ver si te gusta... después de varias pruebas me funcionó:

3 frames,

1 frame:

accion:

Código ActionScript :

stop();
function cargando() {
   total = getBytesTotal();
   cargados = getBytesLoaded();
   if (cargados == total) {
      clearInterval(intpre);
      gotoAndPlay(4);
   } else {
      gotoAndStop(2);
   }
}
intpre = setInterval(cargando, 1);


2 frame:

acción:

Código ActionScript :

stop();
delete cargando;
function cargando2() {
   total = getBytesTotal();
   loaded = getBytesLoaded();
   percent = Math.floor((loaded/total)*100);
   cargador.gotoAndStop(percent);
   if (loaded == total) {
      gotoAndStop(3);
      clearInterval(intpre2);
   }
}
intpre2 = setInterval(cargando2, 1);


mc (cargador como nombre de instancia):
barra de 100 frames con stop() al inicio

3 frame:

acción:

Código ActionScript :

stop();


mc: hice una animación de 30 frames con un _parent.gotoandplay (4) en el último frame

verás un parent, es porque a este swf lo llamo desde otro swf y si le pongo _root. no funciona, igual que a getbytestotal y getbytesloaded con _root me hacia cualquiera.

que te parece?.

saludos.

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 13 Oct 2010 01:28 pm
Me parece bien que lo hayas resuelto tu mismo sin preguntarme como sería el código, eso lo primero.
Lo segundo: repites código y agregas delay, no tiene mucho sentido.
Cuando decía getTimer es algo así:

Código ActionScript :

stop(); 
var minimaEspera:Number = 10000 //10 segundos
function cargando() { 
   total = getBytesTotal(); 
   cargados = getBytesLoaded(); 
   if (cargados >= total && getTimer()>minimaEspera) { 
      clearInterval(intpre); 
      gotoAndPlay("Inicio"); 
   } 
} 
intpre = setInterval(cargando, 1);


Así a que esté todo cargado sumas una mínima espera desde que la peli empieza

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2010 08:12 pm
Hola y gracias por el codigo. Lo que me estás pasando esta bien, pero no es lo que yo busco, lo que yo busco es el efecto que hice. Seguramente se pueda hacer mejor, pero la finalidad debe ser esa.
Yo quiero que cuando una persona abra la web:
si tiene guardado en temp el swf salte directo a inicio y si es la primera vez que entra en la pagina, salga el cargando. Ahora bien, la peli es de 200kb, el preload casi no se ve, pero ese casi es tanto como para que parezca una mancha, eso en una conexion más o menos rapida. Entonces quiero que cuando termine el proceso de la descarga del 100% haga algo. Yo lo que tengo hecho es que los cuadrados que se completaron se vayan uno a uno hacia arriba desapareciendo y la palabra cargando se vaya por un lado. Es realmente una estupides, un pequeño detallito, jejeje, pero como soy un poco maniático, que le voy a hacer?.
Un saludo.

Un saludo.

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 14 Oct 2010 08:14 pm
En realidad opiné porque me lo pediste, pero si es lo que necesitas perfecto, nada mejor que lo que uno quiere hacer ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 14 Oct 2010 09:27 pm
En realidad me gusta que opines porque te considero que tenés un nivel bastante más avanzado que yo... y con lo errores voy aprendiendo cosas muy interesantes. Y si ves o te parece que lo que se puede mejorar, decime como.... por ahora funciona, es más, pensé que era meritorio de un TIP, jaja. Pero parece que no, un saludo.

Por inmagic

46 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Oct 2010 02:53 am
No hay que confundir logros con tips ... un tip se adapta a las necesidades generales y tiene un código elegante (aunque yo no edito tips, para ello Zguillez)

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.