Comunidad de diseño web y desarrollo en internet online

Preloader en ActionScript 3

Para aquellos que hayan visto mi tip sobre Cómo crear una precarga "inteligente" en AS3 y se hayan preguntado como crear una precarga simple (como aquélla que hacíamos en AS2), les dejo el código necesario:

Código :

//Paramos la reproducción
stop()
//Creamos una variable que represente el porcentaje de la descarga
var porcentaje:int
//Iniciar la función "cargaInteligente" mediante
//un escuchador mientras se carga la película
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, precarga)
//Función "precarga" (calcula el porcentaje cargado)
function precarga(e:ProgressEvent){
   //bytes cargados
   var cargados:Number = e.bytesLoaded
   //bytes totales
   var totales:Number = e.bytesTotal
   //porcentaje de carga
   porcentaje = cargados*100/totales
}
//Iniciar la función "completado" mediante un
//escuchador cuando se ha cargado la película
this.loaderInfo.addEventListener(Event.COMPLETE, completado)
//Cuando la carga se haya completado...
function completado(e:Event):void{
   //Reproducimos la película)
   this.play()
   //Eliminamos los escuchadores
   this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, precarga)
   this.loaderInfo.removeEventListener(Event.COMPLETE, completado)
}
//
//Como extra, añadimos un código para que se muestre
//el "porcentaje" en un campo de texto del escenario
this.addEventListener(Event.ENTER_FRAME, mostrarPorcentaje)
function mostrarPorcentaje(e:Event){
   if(this.currentFrame == 1){
      //Mientras que el fotograma actual sea el 1
      //(que es donde debe situarse este código)
      porcentaje_txt.text = String(porcentaje) + "%"
   }else{
      //En caso contrario, eliminamos el escuchador
      this.removeEventListener(Event.ENTER_FRAME, mostrarPorcentaje)
   }
}

Éste código crearía una precarga y la mostraría en un campo de texto llamado porcentaje_txt. Si quieren agregar algo más (por ejemplo, una barra que indique el porcentaje de carga), solo tienen que añadirlo a la función "mostrarPorcentaje", por debajo de la siguiente linea (línea 36 del código):
porcentaje_txt.text = String(porcentaje) + "%"


Al igual que hice en el otro tip, les dejo el código sin comentarios, listo para un copy-paste ;)

Código :

stop()
var porcentaje:int
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, precarga)
function precarga(e:ProgressEvent){
   var cargados:Number = e.bytesLoaded
   var totales:Number = e.bytesTotal
   porcentaje = cargados*100/totales
}
this.loaderInfo.addEventListener(Event.COMPLETE, completado)
function completado(e:Event):void{
   this.play()
   this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, precarga)
   this.loaderInfo.removeEventListener(Event.COMPLETE, completado)
}
this.addEventListener(Event.ENTER_FRAME, mostrarPorcentaje)
function mostrarPorcentaje(e:Event){
   if(this.currentFrame == 1){
      porcentaje_txt.text = String(porcentaje) + "%"
   }else{
      this.removeEventListener(Event.ENTER_FRAME, mostrarPorcentaje)
   }
}

NOTA: La línea que antes era la 36 es ahora la 18.

Espero que les ayude!! :P

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate