Comunidad de diseño web y desarrollo en internet online

Preloader dinámico?

Citar            
MensajeEscrito el 20 Jun 2006 05:07 pm
Saludos,
lo busque dentro del site y no encontré lo q estaba buscando.

Mi pregunta es:
como se hace un cargador que cargue todo el sitio (10 películas externas) y luego de eso se reproduzca todo; Mejor dicho algo asï como que le vaya indicando al usuario:
Película1 cargada, Película2 cargada, Película3 cargada y asi hasta la 10 y que luego se reproduzca todo el sitio ej: http://www.paulinarubio.com/Html/inicio2.html

no se si depronto tenga algo que ver esto:
http://www.paulinarubio.com/Html/_xml/movies.xml.

Gracias por leer.
Suerte

Por klamylo

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jun 2006 06:23 pm
Hola. Para eso te has de crear una función que te carge en bucle una pelicula tras otra, controlando a traves de onLoadComplete o onLoadInit cuando ha acabado de cargar una palicula y que empiece otra...
mirate este código:

Código :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);
function onLoadStart(clip:MovieClip) {
   clip._visible = false;
}
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
   porcentaje = Math.round(bytesLoaded/bytesTotal*100);
   preload.gotoAndStop(porcentaje);
   preload.cargando.text = "Cargando pelicula "+listnombre[cargando];
}
function onLoadInit(clip:MovieClip) {
   cargando++;
   cargaMultiple();
}
//-----------------------------------------------
function cargaMultiple() {
   if (cargando<list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_clips[cargando]);
   } else {
      for (i=0; i<list_clips.length; i++) {
         eval(list_clips[i])._visible = true;
      }
      play();
   }
}
//--------------------------
var cargando:Number = 0;
var list_swfs:Array = ["peli1.swf", "peli2.swf", "peli3.swf"];
var list_nombre:Array = ["pelicula 1", "pelicula 2", "pelicula 3"];
var list_clips:Array = ["contenedor1", "contenedor2", "contenedor3"];
cargaMultiple();
stop();
//--------------------------

si quieres los arrays los puedes rellenar a traves de un archivo xml como el que has enseñado....
suerte :wink:

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 20 Jun 2006 07:49 pm
:?
q pena se me paso decir algo,
No soy el mas avanzado en esto del flash,
si me podrías explicar un poco mejor te lo agradecería toda
la vida.
En todo caso gracias zguillez por tu inmediatez en la repuesta.

Suerte

Por klamylo

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jun 2006 08:07 pm
no tenés de casualidad por ahi el .fla o el .xml
(emoticon de pena)
...pero no veo otra manera
por que por lo q puedo ver de ese código hay que crearle unos espacios
para que muestre la informacion, una barra de cargando, un conector
con el archivo xml y la verdad estoy como perdido.

suerte

Por klamylo

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Jun 2006 09:07 pm

zguillez escribió:

Código :

//Creando la variable precarga que se comportara como gestionador de precargas, de la Clase MovieClipLoader de Flash
var precarga:MovieClipLoader = new MovieClipLoader();

//Agregando un listener
precarga.addListener(this);

//Esta funcion onLoadStart que pasa como referencia el clip creado
function onLoadStart(clip:MovieClip) {
   clip._visible = false;
}

//Funcion que gestionara el porcentaje cargado basandose en el peso de la pelicula y lo que va cargado
function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
   porcentaje = Math.round(bytesLoaded/bytesTotal*100);
   preload.gotoAndStop(porcentaje);
   preload.cargando.text = "Cargando pelicula "+listnombre[cargando];
}

function onLoadInit(clip:MovieClip) {
   cargando++;
   cargaMultiple();
}

//-----------------------------------------------
function cargaMultiple() {
   if (cargando<list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_clips[cargando]);
   } else {
      for (i=0; i<list_clips.length; i++) {
         eval(list_clips[i])._visible = true;
      }
      play();
   }
}
//--------------------------
var cargando:Number = 0;
var list_swfs:Array = ["peli1.swf", "peli2.swf", "peli3.swf"];
var list_nombre:Array = ["pelicula 1", "pelicula 2", "pelicula 3"];
var list_clips:Array = ["contenedor1", "contenedor2", "contenedor3"];
cargaMultiple();
stop();
//--------------------------

si quieres los arrays los puedes rellenar a traves de un archivo xml como el que has enseñado....
suerte :wink:


Te comente los puntos mas importantes, sino aun asi no entiendes; no necesitas ser avanzado en flash ni ActionScript, sino mas bien leerte estos tutos hechos aquì en casa ;)

-->Precargas en Flash
-->Precargas con con MoiveLoader
-->Programacion Basica en Flash

Pd. El tamaño maximo permitido de los avatares, en esta comunidad, es de 100x100 px ;)
Salu2

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox
Citar            
MensajeEscrito el 20 Jun 2006 11:10 pm
A ver... pasito a pasito

1- Pelicula nueva vacia

2- En el primer fotograma colocas un stop()

3- Creas un movieclip para el preload. Lo más fácil: En una capa pones una interpolación de una barrita que dure 100 fotogramas.... en otra capa colocas un texto dinámico con nombre de instancia "cargando"

4- Este movieclip lo colocas en la escena y le das el nombre de instancia "preload"

5- Creas un nuevo movieclip vacio y lo añades a la escena tantas veces como peliculas vayas a cargar... a estas instancias las llamas "contenedor1", "contenedor2", "contenedor3", etc... y las situas en el lugar donde tengan que aparecer las peliculas. (esto lo podrias hacer por programación con createEmptyMovieClip pero si no controlas mucho la progrmación mejor lo haces manualmente...)

6- añades este código al fotograma

Código :

var list_swfs:Array = ["peli1.swf", "peli2.swf", "peli3.swf"];
var list_nombre:Array = ["pelicula 1", "pelicula 2", "pelicula 3"];
var list_clips:Array = ["contenedor1", "contenedor2", "contenedor3"];

Estos son los listados de peliculas a cargas, del nombre que saldrá en el preload, y del movieclip en el que lo vas a cargar... Estos listados tambien lo podrias rellenar leyendo la información de un xml, pero si no sabes como... mejor lo rellenas manualmente...

7- añades esto otro:

Código :

var cargando:Number = 0;
cargaMultiple();

La variable que indica el numero de pelicula que se va a cargar. (Empieza por cero por que el primer elemento de un Array es el numero 0 no el 1)
Se hace la llamada a la función que carga las peliculas.

8- Hacemos el preload

Código :

var precarga:MovieClipLoader = new MovieClipLoader();
precarga.addListener(this);


9- Añadimos los eventos al preload

Código :

function onLoadStart(clip:MovieClip) {
   clip._visible = false;
}

para que cuando se empiece a cargar la pelicula esta que haga invisible (solo queremos que se haga visible cuando esten todas cargadas, no?)

Código :

function onLoadProgress(clip:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
   porcentaje = Math.round(bytesLoaded/bytesTotal*100);
   preload.gotoAndStop(porcentaje);
   preload.cargando.text = "Cargando pelicula "+list_nombre[cargando];
}

Esto controla el clip de preload.
Calcula el porcentaje de la carga realizada y manda el movieclip "preload" al fotograma con ese valor... por eso este movieclip a de tener 100 fotogramas. Si se ha cargado un 67% de la pelicula el movieclip estará en el fotograma 67, ok?
Y en el texto dinámico colocará el texto "cargando pelicula 1". obtiene el nombre del array listnombre segun la posición del clip que se esta cargando...

Código :

function onLoadInit(clip:MovieClip) {
   cargando++;
   cargaMultiple();
}

Esto se ejecuta cuando se acaba de cargar la pelicula...
Sumas un valor a la variable cargando y vuelvas a hacer una llamada a la función de carga, para cargar la siguiente pelicula...

10- Ahora solo falta la función de carga

Código :

function cargaMultiple() {
   if (cargando<list_swfs.length) {
      precarga.loadClip(list_swfs[cargando], list_clips[cargando]);
   } else {
      for (i=0; i<list_clips.length; i++) {
         eval(list_clips[i])._visible = true;
      }
      play();
   }
}

con el if controlas si se han cargado todas las peliculas... si la variable cargando es más pequeña que la cantidad de peliculas dentro de array list_swfs entonces carga la pelicula buscando en los arrays el nombre del fichero y el nombre del movieclip en el que cargarlo segun su valor.
En el caso en que la variable no sea más pequeña es que ya se han cargado todas...
Entonces con el bucle haces todos los movieclips visibles.

Además le he puesto un play() con lo que la pelicula pasaría al fotograma 2... y ahi ya te montas la pelicula que te de la gana...

Y eso es todo...
fácil, no?
salud2

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 20 Jun 2006 11:25 pm
Juas, :? ¿No deberia ir en WebTips? XD

Por Jorgelig

Claber

3035 de clabLevel

12 tutoriales

 

Monterrey, Nuevo Leon, MX

firefox

 

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