Comunidad de diseño web y desarrollo en internet online

PreLoader de AS2 a AS3

Citar            
MensajeEscrito el 16 Ago 2012 01:02 am
Hola desde hace tiempo uso un codigo que fui recopilando y mejorando para mi propio uso para un PRELOADER en actionscript 2.0 me gustaria pasarlo a Action Script 3.0 pero no tengo idea de como hacerlo... si alguien podria ayudar este es el codigo con todo e instrucciones de como hacer el preloader:

Código ActionScript :

//1.- crear una animacion de barra de precarga dentro de un movie clip que dure exactamente 100 frames y con stop en el primero y ultimo frame. La nombraremos barra_mc (en nombre de instancia).
//2.- dentro de barra_mc creamos 6 campos de texto de tipo "Dynamic Text", con la fuente que ustedes elijan para presentar el porcentaje de carga, bytes totales y descargados, velocidad, y tiempo restante.
//3.- A cada campo lo llamaremos con un nombre de instancia...
//4.- Nombre en "nombre de instancia" para:      el porcentaje: porcentaje   bytes descargados: downbytes      bytes descargados: totbytes      bytes restantes: rest      Velocidad: vel      tiempo restante: timer      
//5.- En la linea de tiempo principal crea otra capa y en el primer frame pon un "stop();"
//6.- En la linea de tiempo principal selecciona barra_mc y presiona F9 y pega el codigo Action Script 2.0.
//7.- TODO ESO EN EL FRAME 1




//ActionScript 2.0:

onClipEvent (load) {
   StartTime = getTimer();
}
onClipEvent (enterFrame) {
   if (_root.getBytesLoaded()<_root.getBytesTotal()) {
      Total = _root.getBytesTotal()/1000;
      Received = _root.getBytesLoaded()/1000;
      Restantes = (_root.getBytesTotal()-_root.getBytesLoaded())/1000;
      Percentage = (Received/Total)*100;
      Speed = Received/((getTimer()-StartTime)/1000);
      Remaining = (Total-Received)/Speed;
      _root.barra_mc.gotoAndStop(int(Percentage));
      _root.barra_mc.porcentaje.text = int(Percentage) + "%";
      _root.barra_mc.downbytes.text = int(Received);
      _root.barra_mc.totbytes.text = int(Total);
      _root.barra_mc.rest.text = int(Restantes);
      _root.barra_mc.timer.text = int(Remaining) + " seconds remaining...";
      _root.barra_mc.vel.text = int(Speed) + " Kb/s";
   } else {
      _root.play();
   }
}



GRACIAS...

Por soloelroy

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Ago 2012 03:06 pm
Uff, AS1 del viejo !!
Un preloader de barrita es algo asi

Código ActionScript :

import flash.display.*;
stop();   

//Create a listener to call the loading function as the movie loads
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, PL_LOADING);

/*This is the main function, basically it grabs the total and loaded bytes,
calculates a percentage, and displays it by stretching the bar and adjusting
the textfield display. If your bar/textbox instancenames are NOT lbar/lpc,
you'll need to adjust this code to match your instance names*/

function PL_LOADING(event:ProgressEvent):void {
   var pcent:Number=event.bytesLoaded/event.bytesTotal*100;
  //Stretch the bar
  lbar.scaleX=pcent/100;
  //Display the % loaded in textfield
  lpc.text=int(pcent)+"%";
  //If the movie is fully loaded, kick to the next frame on the main timeline
  //You may wish to change the gotoAndStop(2) to a gotoAndPlay(2)
  if(pcent>=100 && event.bytesLoaded>4){
      this.gotoAndStop(2);
  }
}


Lo tome de http://www.actionscript.org/forums/showthread.php3?t=151850 con minimos cambios para evitar el error de nunca llega a 100. Necesitas un MC con nombre de instancia lbar y un campo de texto con nombre de instancia lpc, o en todo caso modificas el codigo para que use barra_mc. Luego si quieres todas las metriicas que usas en tu ejemplo, lo tienes disponibles en el evento haciendo cuentitas simples.

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Ago 2012 05:06 pm
jeje GRACIAS!! realmente lo unico que necesitaba eran unas que otras lineas para que se adaptara bien... y con un ratito de estar cambiando asi me quedo finalizado y funcional el codigo ;D

Código ActionScript :

stop();   
var StartTime:Number=getTimer();
import flash.display.*;
this.stop();
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, PL_LOADING);
function PL_LOADING(event:ProgressEvent):void {
   var Total:Number=event.bytesTotal/1000;
   var Received:Number=event.bytesLoaded/1000
   var Restantes:Number=Total-Received
   var Percentage:Number=(Received/Total)*100
   var Speed:Number=Received/((getTimer()-StartTime)/1000)
   var Remaining:Number=(Restantes)/Speed
   barra_mc.gotoAndStop(int(Percentage));
   barra_mc.porcentaje.text = int(Percentage) + "%";
   barra_mc.gotoAndStop(int(Percentage));
   barra_mc.porcentaje.text = int(Percentage) + "%";
   barra_mc.downbytes.text = int(Received);
   barra_mc.totbytes.text = int(Total);
   barra_mc.rest.text = int(Restantes);
   barra_mc.timer.text = int(Remaining) + " seconds remaining...";
   barra_mc.vel.text = int(Speed) + " Kb/s";
   if(Percentage==100){
   this.play();
   }
   }
play();


GRACIAS!!!! :DD

Por soloelroy

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Ago 2012 06:13 pm
y mejorando todabia mas...

Código ActionScript :

//ActionScript 3.0
stop();
var StartTime:Number=getTimer();
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, PL_LOADING);
function PL_LOADING(event:ProgressEvent):void{
if (event.bytesLoaded<event.bytesTotal) {
   var Total:Number=event.bytesTotal/1000;
   var Received:Number=event.bytesLoaded/1000
   var Restantes:Number=Total-Received
   var Percentage:Number=(Received/Total)*100
   var Speed:Number=Received/((getTimer()-StartTime)/1000)
   var Remaining:Number=(Restantes)/Speed
   barra_mc.gotoAndStop(int(Percentage));
   barra_mc.porcentaje.text = int(Percentage) + "%";
   barra_mc.downbytes.text = int(Received);
   barra_mc.totbytes.text = int(Total);
   barra_mc.rest.text = int(Restantes);
   barra_mc.timer.text = int(Remaining) + " seconds remaining...";
   barra_mc.vel.text = int(Speed) + " Kb/s";
   } else {
      play();
}
}

Por soloelroy

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Ago 2012 06:46 pm
Otras sugerencias para mejorar:

- No uses nombres de variables en mayúsculas, por convención se usan para las clases
- No uses nombre de función en mayúscula por el mismo motivo
- Usa porcentaje para escalar la barra, es mas simple si necesitas cambiarle el tamaño

... todavía se puede mejorar ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Ago 2012 06:54 pm
gracias lo tomare en cuenta... aunque me gusta que avance los fotogramas dependiendo del porcentaje porque aveces los hago circulares y con animaciones complicadas que no son solo de "estirar" pero lo tomare en cuenta... ahora mismo estoy buscando la forma de que los 2 códigos tanto AS2 y AS3 queden lo mas similar posible.. si lo logro los publico aquí mismo.

Por soloelroy

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Ago 2012 07:35 pm
Comparto los codigos que tengo con todo e instrucciones:

Roy escribió:


1.- crear una animacion de barra de precarga dentro de un movie clip que dure exactamente 100 frames y con stop en el primero y ultimo frame. La nombraremos barra_mc (en nombre de instancia).
2.- dentro de barra_mc creamos 6 campos de texto de tipo "Dynamic Text", con la fuente que ustedes elijan para presentar el porcentaje de carga, bytes totales y descargados, velocidad, y tiempo restante.
3.- A cada campo lo llamaremos con un nombre de instancia...
4.- Nombre en "nombre de instancia" para: el porcentaje: porcentaje bytes descargados: downbytes bytes descargados: totbytes bytes restantes: rest Velocidad: vel tiempo restante: timer
5.- En la linea de tiempo principal selecciona el primer frame (donde deberia de estar solamente barra_mc) y presiona F9 y agrega el codigo dependiendo si usas ActionScript 2 o 3.



Código ActionScript :

//ActionScript 2.0:

starttime = getTimer();
function preloader(){
   total = _root.getBytesTotal()/1000;
   received = _root.getBytesLoaded()/1000;
   restantes = total-received;
   percentage = (received/total)*100;
   speed = received/((getTimer()-starttime)/1000);
   remaining = (total-received)/speed;
   _root.barra_mc.gotoAndStop(int(percentage));
   _root.barra_mc.porcentaje.text = int(percentage) + "%";
   _root.barra_mc.downbytes.text = int(received);
   _root.barra_mc.totbytes.text = int(total);
   _root.barra_mc.rest.text = int(restantes);
   _root.barra_mc.timer.text = int(remaining) + " seconds remaining...";
   _root.barra_mc.vel.text = int(speed) + " Kb/s";
if (recived==total){
   play();
   clearInterval(exe);
}
}
var exe = setInterval(preloader,1)




Código ActionScript :

//ActionScript 3.0:

var starttime:Number=getTimer();
import flash.display.*;
this.loaderInfo.addEventListener (ProgressEvent.PROGRESS, preloader);
function preloader(event:ProgressEvent):void {
   var total:Number=event.bytesTotal/1000;
    var received:Number=event.bytesLoaded/1000
    var restantes:Number=total-received
    var percentage:Number=(received/total)*100
    var speed:Number=received/((getTimer()-starttime)/1000)
    var remaining:Number=(restantes)/speed
    barra_mc.gotoAndStop(int(percentage));
    barra_mc.porcentaje.text = int(percentage) + "%";
    barra_mc.downbytes.text = int(received);
    barra_mc.totbytes.text = int(total);
    barra_mc.rest.text = int(restantes);
    barra_mc.timer.text = int(remaining) + " seconds remaining...";
    barra_mc.vel.text = int(speed) + " Kb/s";
   if(received==total){
      }
}



NOTAS:
si no quieres:

a) que la barra de porcentaje (o cualquier animacion) indique el porcentaje y se repita sin interrupciones...
R= no nombres barra_mc, deja el nombre de instancia en blanco. Ahora puede ser de tantos fotogramas como quieras.

b) que aparesca algun recuadro (porcentaje, tiempo restante, bytes descargados, velocidad, etc...) borralo o no lo hagas.


MUCHÍSIMAS GRACIAS POR TU AYUDA JORGE (solisarg) ;D

Por soloelroy

13 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.