URGENTE preloader personalizado URGENTE

Moderador: Gildus

Aqui el nuevo foro sobre Flash, Soluciones a problemas con ActionScript y Programacion

URGENTE preloader personalizado URGENTE

Notapor jurringa » Mar May 08, 2007 10:49 pm

Buen día a todos....

estoy tratando de hacer un preloader que no sea la barrita que se escala, lo que quiero es poner un MC de 100 frames que ya esta hecho, pero no he podido hacer que funcione correctamente....

Si alguien sabe el código, o la ubicación de algun tutorial lo agradezco.... lo he buscado y no lo encuentro.... porfa ayudenme...

AP :lol:
jurringa
Novato
Novato
 
Mensajes: 11
Registrado: Jue Jun 09, 2005 1:27 pm


respuesta... preloaded

Notapor le_koche » Lun Jul 09, 2007 1:32 pm

bueno amigo lo primero es ver algunas variables: "getBytesLoaded()" y "getBytesTotal()".. cada una te devuelve el valor de los bytes cargados y de los totales respectivamente... atu Mc que previamente hiciste tienes que darle un nombre de instancia para poder modificarlo por medio de Ac, por ejemplo de nombre de instacia puedes ponerle "mc_preload"... una vez entendido esto vamos al codigo:

Código: Seleccionar todo
  1.  

  2. /*lo primero seria nombrar variables para manejar los bytes cargados, los totales y el porcentaje de los mismos: */

  3.  

  4. var total, cargados, porcentaje;

  5.  

  6. /*despues le damos valores a las variables*/

  7.  

  8. total = _root.getBytesTotal();

  9. cargados = _root.getBytesLoaded();

  10.  

  11. /* hacemos una simple regla de tres para sacar el valor de la variable porcentaje*/

  12.  

  13. porcentaje = Math.floor((cargados*100)/total);

  14.  

  15. /* una vez teniendo los valores comenzamos el codigo con un tipico if*/

  16.  

  17. if(cargados==total){

  18.       play();

  19. }

  20.  

  21. /*no hace falta explicacion a la linea anterior... creo!... ahora vamos al else */

  22.  

  23. else{

  24.        mc_preload.gotoAndStop(porcentaje);

  25. }

  26.  

  27.  

  28. /*explicacion general: con el "if" comprobamos si la cantidad de bytes total es la misma que la cantidad de bytes cargados, si no es asi pasa a la siguiente parte del codigo el "else" recordemos que al movieclip le dimos un nombre de instancia "mc_preload" en esta linea le decimos que entre a la linea de tiempo del Mc y que se detenga en "porcentaje", recordemos que "porcentaje" tiene un valor variable, es decir, que cambia cada vez que el codigo pasa por (porcentaje = Math.floor((cargados*100)/total);) esto nos devuelve un valor numerico variable, que es lo que nos da el efecto de movimiento en el Mc.... Espero te sirva de algo, saludos... para cualquier duda, pregunta o aclaracion enviame un e-mail a: mundo.koche@gmail.com suerte! */

le_koche
Novato
Novato
 
Mensajes: 1
Registrado: Lun Jul 09, 2007 1:01 pm


Re: URGENTE preloader personalizado URGENTE

Notapor joeshape » Mar Ago 19, 2008 9:17 am

Hola, pues espero poder explicarte como es que puedes hacer uno de forma tan sencilla que no necesitas crear una animacion de 100 frames.. :D Solo necesitaras 2 frames para crear tu preloader.
ok , comenzamos. .. antes que nada pues vamos a reflexionar un poco sobre lo que se tiene que hacer.. ok?
queremos ke aparezca una animacion o algo que nos indique que nuestra pagian o animacion va cargando.
como hacemos esto?? pues de forma logica. es muy sencillo.. "si lo que llevamos cargado , no es aun el total de toda la pelicula que vamso a reproducir.. pues no podemos continuar , hasta que sea cargada.. esto en codigo seria algo asi..
Código: Seleccionar todo
  1. if(getBytesLoaded()<getBytesTotal()){


lo que acabamos de hacer , es crear una sentencia , .. si o que llevamos cargado no es igual a lo que vamso a cargar.. pues se relaiza una accion..
ok . pero como ponemso esto en funcionamiento..

BUeno pues mi loader va a ocupar los priemeros 2 fotgrams de mi pelicula.. esto quiere decir que mi animacion o pelicula la voy a comenzar despues d eestos 2 fotogramas.. ok?
en el primer fotograma vacio, creamos un movie clip( este mc es el que semostrara de animacion mientras se carga mi pelicula), si desean crear un texto que indique cuanto es lo que se va , cargado. pues igual lo pueden hacer.. como lo hace?
introducen un campo de texto dinamico( muy importante que sea dinamico) y le asignamos un nombre de instancia. yo lo llamare " cargando" .
duplicamos la capa o cpas en el siguienet keyframe vacio... ( simplemente en l fotograma 2 vacio , pues damos boton derecho y seleccionamos insentar fotograma clave.. para que se copie lo que tenemos en el fotograma 1).
ahora , al fotogram 2, asignamos una accion( muy imprtante asignar la accion al fotograma y no al movie clip).
la accion seria la siguiente:

Código: Seleccionar todo
  1. if(this.getBytesLoaded()<this.getBytesTotal()){

  2.         porcentaje=Math.floor((this.getBytesLoaded()/this.getBytesTotal())*100)

  3.         cargando.text=porcentaje +"%";

  4.         this.gotoAndPlay(1);

  5. }



que e slo que hicimos??..
pues como ya lo habia mencionado antes. creamso una sentencia que nos indica que si lo que llevamos cargado , es menor a lo que vamos a cargar,
se va a crear una variable con nombre "porcentaje", que es dodne se almacenara en forma nunmerica , lo que actual mente llevamos de avance,
y este porcentaje se mostrara en nuestro texto dinamico. al cual le asignamos el nombre de instancia "cargando".
ok . este loader es de lo mas basico.
espero hagan sus pruebas..
joeshape
Novato
Novato
 
Mensajes: 11
Registrado: Vie Jun 10, 2005 6:47 pm

Re: URGENTE preloader personalizado URGENTE

Notapor joeshape » Mar Ago 19, 2008 9:34 am

ok amigo.. si lo queestabas buscando en un loader que vaya apareciendo conforme a lo que se va cargando.. pues estas en el lugar correcto.
ok como se hace esto??? bueno pues muy sencillo, vamos a tener que estar familiarizados con el usio de mascaras. y con las acciones _xscale o _yscale
ok , como en mi ejemplo anterior.. lo unico que hay que modificar es lo siguiente.
hay que modificar unicamente nuestro movie clip.. osea la animacion qeu queriamos mostrar durante nuestra carga.
dentro de nuestro movie clip , entramso al modo de edicion ( osea para modificarlo) y agregamso una capa , a esta capa la convertimos en mascara y dibujamos un cuadro que tape nuestro dibujo u objeto que habiamso puesto como animacion y lo convertimos en un clip de pelicula y asignamos un nombre de instacia. o en este caso le llamaré "mascara_mostrar" (rescuerden que la mascara debe de cubrir al objeto, por solo lo que este cubierto po la mascara es lo que se mostrar.. y nosotros queremos que al final de la carga se muestre todo el objeto o dibujo o etc.)
ok . en nuestro fotograma 2 agregamos el siguiente codigo. de forma ke kede de esta manera.

Código: Seleccionar todo
  1. if(this.getBytesLoaded()<this.getBytesTotal()){

  2.         c=(this.getBytesLoaded()/this.getBytesTotal())*100

  3.         this.mascara_mostrar._yscale=c

  4.         porcentaje=Math.floor((this.getBytesLoaded()/this.getBytesTotal())*100)

  5.         cargamos.text=porcentaje +"%";

  6.         this.gotoAndPlay(1);

  7. }



que es lo que hicimos??
pues primero evaluamos los bytes, despues se crea una variable (yo le llamé "c"),
ahora
Código: Seleccionar todo
  1. this.mascara_mostrar._yscale=c


es lo que nos ayuda a ver la animacion poco a poco. ya que es la que se va a escalar de acuerdo con lo que este cargado.
por ejemplo , si llevamos un 50% de carga. se mostrara solo la mitad de nuestro objeto.
ahora hay que ver una cosa... en este ejemplo yo escale a "mascara_mostrar" en su eje Y.. esto hace que se escale hacia arriba. osea ek la figura se vaya mostrando verticalmente y no horizontalmente.. si lo que quieren es ke se muestre horizontalmente.. basta con cambiar la "y" por la "X" quedando de la siguiente manera:

Código: Seleccionar todo
  1. this.mascara_mostrar._xscale=c



cualquier duda, espero poder responderles..

suerte
joeshape
Novato
Novato
 
Mensajes: 11
Registrado: Vie Jun 10, 2005 6:47 pm


    

Volver a Flash / Action Script

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados