Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/07/2008, 08:09
ramonjosegn
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: precarga de todos los swf que hay en el servidor

Hola!

yo he estado experimentado estas semanas con este tema y el último sistema que estoy empleando os lo comento a continuación

antes de nada comentaros que flash no parece dar ninguna prioridad a los elementos que se cargan (puede empezar por el final, por la mitad o por el principio de la película dependiendo del día, de la hora, del tiempo, o del nombre del usuario)

debido a esto yo decidi no realizar una precarga simultanea de todos los elementos, sino realizar una precarga lineal de ellos, teniendo en cuenta la forma en que posiblemente se movera el usuario (por supuesto esto es muy subjetivo, pero si teneis un pase de fotos lo logico es que precargueis la primera foto de primera no?)

mi sistema es el siguiente;

1 - crear una pelicula flash nueva, llamarla cargador por ejemplo

2 - en cada fotograma vais a precargar el elemento x con loadMovie

3 - en el fotograma 1 creais un movieclip vacio (lo llamais precargador01 por ejemplo)

4 - ahora precargais en ese movieclip el swf o la imagen que querais precargar con el siguiente codigo


loadMovie("objetoaprecargar.swf", _root.precargador01);
//cargo con loadMovie el swf en el precargador x
stop();
id = setInterval(precarga, 50);
function precarga() {
//Declarar variable "precarga"
//y Regla de tres para sacar porcentaje
var porcentaje:Number = Math.round((_root.precargador01.getBytesLoaded()/_root.precargador01.getBytesTotal())*100);
//Atencion: _root.getBytesTotal() y _root.getBytesTotal()
//apunta en este caso al movieclip cargado con loadMovie
trace(porcentaje); //comproar porcentaje en la ventana salida
if (porcentaje == 100) {
//Saltar al frame actual + 1(es decir al siguiente, nextFrame no funciona)
gotoAndStop(_currentframe+1);
trace("precarga completa ");
clearInterval(id);
}

duplicais los fotogramas y cambiais los nombres que hagan falta (el precargador solo ocupara unos cuantos kbs)

el siguiente paso consiste en hacer invisible la precarga:

yo hago lo siguiente:

en la intro (si hay) y en la pagina de la web, en el codigo html en dreamweaver inserto el precargador (swf) le bajo la calidad al minimo y le pongo de tamaño 1x1 pixel, si quereis ser mas exagerados podeis ponerlo dentro de un layer y darle visibilidad 0

me ha funcionado bastante bien este sistema, espero que os sirva

nota:
se me ocurre que de pronto no necesitais que los movieclips esten cargados al 100% sino que podrian estarlo al 80% (por ejemplo), de esa forma cargarian mas rapido y estarian casi precargados para vuestra pelicula, en ese caso cambirais if (porcentaje == 100) por if (porcentaje == 80)