estoy haciendo mi primera pagina completamente en flash y utilizando actionscript 2 y debido al gran tamaño de la pagina que en un 90% son basicamente galerias de fotos, pues he decidido partirla en una principal desde la que se cargan las galerias como swf externos y luego las fotos de estas tambien se cargan externamente.
Bueno pues el problema es que al cargar los swf externos quiero ponerles una precarga basica con la barrita y el porcentaje de carga, igual que tiene la principal, pero por mucho que lo intento, siempre falla algo, o se queda la barra subiendo indefinidamente en plan bucle o al cargar me manda de nuevo al principal en vez de al externo.
esto son los dos codigos con los que estoy probando:
este el que siempre he utilizado
Código ActionScript :
onClipEvent (load) { Total = this.getBytesTotal(); } onClipEvent (enterFrame) { Cargado = this.getBytesLoaded(); Porcentaje = int(Cargado/Total*100); texto = "Cargando... "+Porcentaje+"%"; this.Cargador.barra._xscale = Porcentaje; if (Cargado == Total) { this._parent.gotoAndPlay(2); } }
y este es el segundo y con el que lo estoy intentando ahora:
Código ActionScript :
/* Declaro la función de precarga "cargando", esta función se ejecutara todo el tiempo hasta que haya cargado totalmente la pelicula */ onClipEvent (load) { function cargando() { // Declaración de variables var total, cargados, porcentaje; // A la variable "total" se le asigna el tamaño de la pelicula en bytes total = this.getBytesTotal(); // A la variable "cargados" se le asignan el total de bytes hasta el //momento descargados de la web cargados = this.getBytesLoaded(); //Por medio de una regla de tres obtiene el porcentaje cargado y redondea el valor con la función //"Math.floor" porcentaje = Math.floor((cargados*100)/total); //Asigna al campo de texto porcentaje_txt el porcentaje cargado texto_botero.text = porcentaje+" %"; //Mueve la barra de carga al frame correspondiente al porcentaje barra_botero.gotoAndStop(porcentaje); //Si la cantidad de bytes cargados es igual a la cantidad total de bytes if (cargados == total) { //Hacer que se deje de ejeuctar esta función clearInterval(hiloPrecarga); //Iniciar la pelicula this.gotoAndPlay(2); } } // setInterval nos servira para que la función "cargando" se ejecute cada 1 milisegundo // Asi, nuestra función revisara constantemente la cantidad de bytes descargados // y solo iniciara la pelicula hasta que la descarga termine // la variable "hiloPrecarga" nos servira para saber que esta corriendo nuestra función // y frenar su ejecución cada milisegundo por medio de "clearInterval" var hiloPrecarga = setInterval(cargando, 1); //Evita que inicie la pelicula stop(); }
Intuyo que el problema este en la ruta (_root o _parent o this) pues con la precarga de las fotos externas tuve tambien problemas y los arregle (de suerte) por ahi.
Esto cansado de hacer pruebas y de mirar en los demas post sobre precargas pero no encuentro ninguna solucion asi que si alguien me ayudase directamente se lo agradeceria eternamente.
Venga muchas gracias de antemano.