Tengo una página sencilla pero en la intro hay fotos de alta calidad ya que es una empresa de fotografía y la idea es que se vean perfectas, Como puedo hacer una precarga, tengo varias explicaciones pero no las entiendo, ¿habrá una sencilla? Gracias
En realidad hacer una precarga es mucho más simple de lo que parece. Ya que Flash nos entrega la cantidad de bytes totales de la película y la cantidad de bytes cargados. Basta con hacer una regla de tres para sacar el porcentaje cargado, y como verás crear una animación que avance según el porcentaje es igualmente fácil. Presta atención: Empecemos por la función que nos dice el porcentaje, primero expongo la función y después la explico. --- function cargado() { var total, cargado, porcentaje; total = _root.getBytesTotal(); cargado = _root.getBytesLoaded(); porcentaje = Math.floor((cargados*100)/total); movieClipPrecarga.gotoAndStop(porcentaje); casillaDeTexto.text = "Cargado " + porentaje + "%"; if (cargados == total) { clearInterval(ciclo); play(); } } --- La primera línea, como sabrás si tienes conocimientos básicos de action script, crea la función "cargado" que cuando sea llamada, calcula la el porcentaje cargado y lo muestra en pantalla. La segunda línea crea las variables necesarias, una buena costumbre de programación que no debe caer en desuso aunque en ActionScript no es obligatorio. Las líneas tercera, cuarta obtienen la cantidad de bytes totales y la cantidad de bytes cargados y los guarda en las variables "total" y "cargado". La quinta línea hace la regla de tres sobre "cargados" y "total" para obtener el porcentaje que ha sido cargado. Luego lo redondea hacia abajo con "Math.floor()". Ahora empieza la parte clave: Necesitas crear un MovieClip (clip de película) que tenga si es posible 100 fotogramas, de lo contrario habría que cambiar el código. Un buen ejemplo sería crear un MovieClip que en el fotograma cero mostrara un recuadro que se irá alargando hasta el fotograma 100 en el que tendría un largo considerable. Con esto, la función "cargado" mostrara el fotograma correspondiente con el porcentaje cargado, lo que quiere decir que si por ejemplo lleva cargado el 25% nos mostrará el fotograma 25 en el que se ve el recuadro algo alargado, cuando lleve cargado un 60% nos mostrará el fotograma 60 en el que el recuadro ya se ha alargado más de la mitad de su tamaño final. En el código de ejemplo, el MovieClip tiene el nombre de instancia "movieClipPrecarga" que puedes cambiar por el que quieras La línea séptima cambia el contenido de la casilla de texto que tenga como nombre de instancia "casillaDeTexto" por un mensaje mostrando el porcentaje cargado. También puedes cambiar el nombre de instancia por el que quieras. La línea octava comprueba si ya se han cargado todos los bytes (si los bytes cargados son la misma cantidad que los bytes totales), y si es así, finaliza la precarga y avanza de fotograma. Por último creamos un intervalo que se encargará de ejecutar la función cada por milisegundos. Cuanto menor sea por más fluida será la precarga pero también consumirá más recursos en el ordenador cliente. En mi opinión, con poner 50 milisegundos es bastante. --- var ciclo = setInterval(cargado, 50); --- Con esto tienes la parte de la programación de la precarga, el diseño consiste en el MocieClip con la barra de carga y la casilla de texto. En resumen, el primer fotograma de la película (o en una escena insertada antes que las demás si mover todos los fotogramas es mucho problema) inserta el MovieClip, la casilla de texto y el siguiente código: --- function cargado() { var total, cargado, porcentaje; total = _root.getBytesTotal(); cargado = _root.getBytesLoaded(); porcentaje = Math.floor((cargados*100)/total); movieClipPrecarga.gotoAndStop(porcentaje); casillaDeTexto.text = "Cargado " + porentaje + "%"; if (cargados == total) { clearInterval(ciclo); play(); } } var ciclo = setInterval(cargado, 50); --- Con esto la precarga ya está hecha. Perdón si se hizo demasiado largo, es una costumbre que tengo de intentar no dejar ningún posible error o variante sin tener en cuenta. Intentando no alargarlo más lo termino aquí. Espero haberlo dejado claro, sino no dudes pedir una aclaración. Saludos --- Sel
Muchísimas gracias por la explicación, muy completa y entendible, creo que el más ignorante de programación lo entendería. Mil Gracias por tu colaboración para mis conocimientos diría que básicos de Action script de Macromedia flash. Te colocare en mis favoritos. Para en otra oportunidad no tener que ver respuesta que no son tan explicita como la que me acabas de elaborar. Gracias