Comunidad de diseño web y desarrollo en internet online

Cargar SWF dentro de otro (problemas con preloaders)

Citar            
MensajeEscrito el 22 Nov 2006 08:05 pm
Bien, tengo un problema al cargar un swf dentro de otro, hice esto para evitar una página pesada, la web contiene un video, este video tiene que cargar en la parte inicial de la web, asi que la hice en un swf aparte, el problema es que ese swf sin precargar, como que avanza a un paso lento, para evitar esto, quiero ponerle una precarga y una vez cargado, que empieze a visualizarce.
El problema pasa cuando pongo la precarga en el video, toda la web empieza a parpadear y nunca carga el video... al igual que el video estoy cargando aparte, es decir en un swf aparte, estoy haciendo la parte central, donde van las fotos y texto de la web, para llamar a la pelicula extgerna uso

Código :

if (this.cuadro == Number(this.cuadro)) {
   loadMovieNum("video.swf", this.cuadro);
} else {
   this.cuadro.loadMovie("video.swf");
}


donde cuadro es el nombre de instancia para el mc vacio, y video.swf es mi video, el codigo de AS la pongo en el fotograma donde esta el mc.

Por BlackMage

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2006 06:17 pm
[quote="BlackMage"]

Código :

if (this.cuadro == Number(this.cuadro)) {
   loadMovieNum("video.swf", this.cuadro);
} else {
   this.cuadro.loadMovie("video.swf");
}



Fijate los stop, otra cosa, es mas facil cargarlo en un Movieclip vacio, pones _root. y el nombre y listo.


saludos

Por palitosci

60 de clabLevel



Genero:Masculino  

Argentina

firefox
Citar            
MensajeEscrito el 11 Dic 2006 07:18 pm

Por BlackMage

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2007 03:10 pm
Hola BlackMage...

Puedes intentar con el MovieClipLoader, el cual te permite controlar las acciones de carga mas fácil, puedes cargar jpg(no progresivos), y swf ( no he probado con otros archivos)... :P


Para tener un mejor control del archivo a cargar yo uso un MC en el escenario, y dentro de el coloco el container (MC donde se cargara el archivo), tambien uso un MC con una animacion de 100 fotogramas, que me sirve como barra de progreso. Y en el primer fotograma coloco el siguiente código:

Código :

//loader es el MovieClipLoader que creo
loader = new MovieClipLoader();
//listener es donde coloco las funciones que realizara el loader durante
//el comienzo de la carga, el progreso de la carga, y cuando se termina la carga.
listener = new Object();
//******************************************
//funcion que ejecuta el MCL cuando empieza la carga
listener.onLoadStart = function(target_mc) {
   //llamo a la barra de progreso y la posisiono en el medio del escenario
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
};
// esta funcion es para llevar el control de la carga
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   //variables y sentencias para que la barra de progreso muestre "el progreso" :)
   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.barra_mc.gotoAndStop(porcentaje);
   _root.barra_mc.cargado.text = "Cargando "+porcentaje+"%";
   //hago que mientras se carga el archivo permanezca invisible y sin reproducir
   target_mc._visible = false;
   target_mc.stop();
};
//finalmente cuando la caraga se completa
listener.onLoadComplete = function(target_mc) {
   //hago visible el archivo y le doy un alpha de 0
   target_mc._visible = true;
   target_mc._alpha = 0;
   //lo siguiente es para hacer un fundido, para que no se muestre de golpe
   target_mc.onEnterFrame = function() {
      if (target_mc._alpha == 100) {
         target_mc._alpha = 100;
      } else {
         target_mc._alpha += 2;
      }
   };
   //y aqui hago que se reproduzca
   target_mc.play();
   //remuevo la barra de progreso
   _root.barra_mc.removeMovieClip();
};
//asigno el listener a loader
loader.addListener(listener);
//aqui coloco la ruta del archivo y su destino
loader.loadClip("archivo.swf", _root.clip.container);


Nota: Es mejor que cada jpg que quieras cargar, lo coloques antes dentro de un swf, y lo cargues como swf, porque es mas fácil de controlar. :D

Otra nota: este codigo aparece en uno de los tuto de MovieClipLoader (no recuerdo el autor)... me ha ayudado muchisimo...

espero te sirva...

Saludos... ^^

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 26 Ene 2007 03:30 pm
Hola BlackMage...

Puedes intentar con el MovieClipLoader, el cual te permite controlar las acciones de carga mas fácil, puedes cargar jpg(no progresivos), y swf ( no he probado con otros archivos)... :P


Para tener un mejor control del archivo a cargar yo uso un MC en el escenario, y dentro de el coloco el container (MC donde se cargara el archivo), tambien uso un MC con una animacion de 100 fotogramas, que me sirve como barra de progreso. Y en el primer fotograma coloco el siguiente código:

Código :

//loader es el MovieClipLoader que creo
loader = new MovieClipLoader();
//listener es donde coloco las funciones que realizara el loader durante
//el comienzo de la carga, el progreso de la carga, y cuando se termina la carga.
listener = new Object();
//******************************************
//funcion que ejecuta el MCL cuando empieza la carga
listener.onLoadStart = function(target_mc) {
   //llamo a la barra de progreso y la posisiono en el medio del escenario
   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;
};
// esta funcion es para llevar el control de la carga
listener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
   //variables y sentencias para que la barra de progreso muestre "el progreso" :)
   var porcentaje:Number;
   porcentaje = Math.round((loadedBytes*100)/totalBytes);
   _root.barra_mc.gotoAndStop(porcentaje);
   _root.barra_mc.cargado.text = "Cargando "+porcentaje+"%";
   //hago que mientras se carga el archivo permanezca invisible y sin reproducir
   target_mc._visible = false;
   target_mc.stop();
};
//finalmente cuando la caraga se completa
listener.onLoadComplete = function(target_mc) {
   //hago visible el archivo y le doy un alpha de 0
   target_mc._visible = true;
   target_mc._alpha = 0;
   //lo siguiente es para hacer un fundido, para que no se muestre de golpe
   target_mc.onEnterFrame = function() {
      if (target_mc._alpha == 100) {
         target_mc._alpha = 100;
      } else {
         target_mc._alpha += 2;
      }
   };
   //y aqui hago que se reproduzca
   target_mc.play();
   //remuevo la barra de progreso
   _root.barra_mc.removeMovieClip();
};
//asigno el listener a loader
loader.addListener(listener);
//aqui coloco la ruta del archivo y su destino
loader.loadClip("archivo.swf", _root.clip.container);


Nota: Es mejor que cada jpg que quieras cargar, lo coloques antes dentro de un swf, y lo cargues como swf, porque es mas fácil de controlar. :D

Otra nota: este codigo aparece en uno de los tuto de MovieClipLoader (no recuerdo el autor)... me ha ayudado muchisimo...

espero te sirva...

Saludos... ^^

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 26 Ene 2007 06:55 pm
emm... la verdad no te entiendo muy bien, dime, crees que podrias subir los archivos para poder analizarlos, por ejemplo, me dices que ponga un mc vacio... este mc vacio debe tener un nombre de instancia... o no?... entendí que en el fotogramas mandas a cargar la pelicula, y asi evitas que la pelicula tenga el preloader, no sé si esa precisamente la idea pero asi la entendí... gracias :love: pero sube los files porfa...

No sé si te puedes fijar aca Suritex Perú en la parte de Productos y Servicios y seleccionar alguna de esas imagenes, fijate que carga un swf externo... algo asi creo que se puede manejar con el video.

Por BlackMage

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Ene 2007 09:05 pm

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 26 Ene 2007 09:06 pm
oops... no me di cuenta y coloque dos veces el mismo post...

Sorry...
XD

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 31 Ene 2007 10:34 pm
Muchas gracias me sirvió de mucho, te lo agradesco!!!! :wink:
Una consulta, tu manejas la aparición de la barra de loader con as, es decir, las coordenadas de donde va a aparecer:

Código :

   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = Stage.height/2;
   _root.barra_mc._x = Stage.width/2;

esto pusiste para posicionarlo al centro, pero yo quiero que aparescan en la esquina superior derecha de la pantalla, entonces mi codigo sería algo así:

Código :

   _root.attachMovie("barra", "barra_mc", _root.getNextHighestDepth());
   _root.barra_mc._y = 136;
   _root.barra_mc._x = 551;


lo pongo porque no sé porq pusiste 'Stage.height/2'

y una vez más muchas gracias!!! ^^

Por BlackMage

37 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Feb 2007 03:05 pm
Me alegro de que te haya servido... ^^

Sip ese seria el código.... Yo coloqué Stage.height/2 y Stage.width/2.... porque asi puedo colocarlo en el centro de la pelicula, sin importar el tamaño de esta.... por ejemplo si tengo una peli de 800*600 y otra de 150*150, no importa porque sería el mismo código, sino tendria que colocar 400*300 y 75*75, respectivamente...

*en realidad porque me da flojera estar cambiando codigo y solo copio y pego...:cool:

Saludos...:)

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 22 Mar 2011 09:55 am
a mi me serviria mucho que resubieran ese archivo, o mas bien he hecho lo que puso ironpopcorn pero la barra no se donde ponerla, la dejo en el 1er frame? cual seria el nombre de instancia de la barra? debe tener un stop(); al final de la animacion de los 100 frames? como se llamará el contenedor del swf ó se crea desde el script?, espero puedan ayudarme ;)

Por evanezzcence

Claber

107 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Mar 2011 12:30 pm

Por ironpopcorn

51 de clabLevel



 

pensando

firefox
Citar            
MensajeEscrito el 22 Mar 2011 08:22 pm
wow muchas gracias!!! me estaba volviendo loco, de hecho hasta rehice todo el sitio en as3 (pero no me he acostumbrado y se me hace mas complicado)! gracias! me salvaste!

Por evanezzcence

Claber

107 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 22 Mar 2011 09:58 pm
sorry por el dobel post, pero ahora tengo un problema al cargar un swf de esta manera, los botones y animaciones se ven realentizados :S no sabes a que se deba?

Por evanezzcence

Claber

107 de clabLevel



Genero:Masculino  

firefox

 

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