Ya comenté en otro post que:
… pensaba que me estaba funcionando bien un preload que funciona bien por separado (si lo pruebo en el simulador de descarga de Flash o si cargo la película en un htm), pero que funciona mal si lo cargo mediante el LoadMovie, o sea, llamando a esa película que tiene ese preload desde un botón de otra película. Me he dado cuenta de que funciona mal porque hice una película de imágenes que pesan mucho y, al llamar al swf que las contiene, me sale desde el principio el 100% completado en el preload, pero sólo al cabo de mucho rato empiezan a aparecer las imágenes que aún así tardan mucho en terminarse de cargar y mostrarse…
Lo que necesito es que funcione como en la página de Phivian cuando le da a cualquier botón del menú (http://www.phivian.com/), aunque no necesito ni barra ni bytes cargados, sólo el porcentaje.
El preload lo tengo en la película que llamo a cargar con un botón en la película principal, y el código es éste:
function cargando() {
var total, cargados, porcentaje;
total = _root.getBytesTotal();
cargados = _root.getBytesLoaded();
porcentaje = Math.floor((cargados*100)/total);
porcentaje_txt.text = porcentaje + " %";
if (cargados == total) {
clearInterval(hiloPrecarga);
play();
}
}
var hiloPrecarga = setInterval(cargando, 1);
stop();
En el botón que tiene que cargar el swf externo tengo esto:
on (release) {
gotoAndPlay ("escena",8);
}
En el frame 8 de la película que contiene el botón tengo esto:
loadMovie("imagenes.swf", "loquesea");
Y en el frame 1 de la misma película principal tengo esto:
this.createEmptyMovieClip ("loquesea",1);
He visto que varios han tenido el mismo problema. Ivanhoe el 12/10/2005 decía que tal vez había que cambiar el _root por this en el preload, pero al hacerlo le salía en el porcentaje “NAN %”. A mí me ha pasado lo mismo. También Rmaster tuvo un problema parecido el 28/7/2005 y Leftside le contestó que “Por ejemplo: si cargás la movie en el nivel 1 tenés que corregir
total = _root.getBytesTotal();
por:
total = _level1.getBytesTotal();
porque si no sigue mirando el nivel 0 y ese ya está cargado.”
Pero probé a realizar esa sustitución que dice Leftside y me sale “Infinity” en el porcentaje, o “NAN%” si además sustituyo el _root por el this en “cargados”.
Incluso he probado a poner en la película principal un preload para la película a la que llama:
En el primer frame he puesto:
stop();
var vacio:MovieClip = this.createEmptyMovieClip("vacio", 4);
var loop:MovieClip = this.createEmptyMovieClip("loop", 3);
function cargador(swf) {
vacio.loadMovie(swf);
}
loop.onEnterFrame = function() {
total = vacio.getBytesTotal();
cargados = vacio.getBytesLoaded();
t = int((cargados*100)/total);
porcentaje_txt.text = t + “%”;
if (t>=100) {
delete loop.onEnterFrame;
loadMovie("imagenes.swf","loquesea");
}
}
y en el último frame también de la película principal he puesto:
cargador("imagenes.swf");
Pero debo tener varias cosas mal porque, aunque me carga la película imagenes.swf, el porcentaje de carga no se ve y la película que carga se muestra mucho antes de que esté completamente cargada.
Disculpas por el post tan largo, pero es por si podíais echarme una mano viendo los códigos que tengo y todo lo que he probado.
Gracias y un saludo,
Midai