Abrir pelicula en un frame concreto

Posted by admin | Básico,Flash | Friday 9 June 2006 12:41 am

Puede que al cargar peliculas externas dentro de nuestra palicula principal nos interese que esa pelicula cargada se reproduzca a partir de un fotograma concreto o con algunas variables internas con un valor en determinado.

Pongamos por ejemplo que queremos cargar una pelicula dentro de un movieclip llamado "contenedor", y además queremos que se reproduzca a partir del fotograma 50 y que un campo de texto que contiene esta pelicula contenga el texto "Texto pasado desde la pelicula principal".

Podriamos utilizar el siguiente código:

CODE:
  1. on (release) {
  2. loadMovie("peli2.swf", "contenedor");
  3. contenedor.gotoAndStop(50);
  4. contenedor.texto.text = "Texto pasado desde la pelicula principal";
  5. }

El problema de este código es que primero ejecuta el loadMovie con lo que la pelicula externa empiaza a cargar, luego ejecuta el gotoAndStop y luego se pasa la información del texto. El problema es que al ejecutarse estas dos últimas acciones la pelicula externa aun no esta completamente cargada, así que se están ejecutando dentro de un movieclip "contenedor" aun vacio... con lo que al terminar de cargar la pelicula, esta se reprodurá desde el primer fotograma y el campo de texto no mostrará el texto deseado.

Para que esto no ocurra deberíamos esperar a que la pelicula externa este completamente cargada dentro de la pelicula principal antes de mandarle cualquier acción.

El evento onLoadComplete de la clase MovieClipLoader nos permite detercar el momento en el que la pelicula externa se ha cargado por completo, de manera que nos permite pasarle la información necesaria a la pelicula para que se reproduzca tal y como nos interese.

El código sería el siguiente:

CODE:
  1. on (release) {
  2. var loader:MovieClipLoader = new MovieClipLoader();
  3. loader.addListener(this);
  4. loader.loadClip("peli2.swf", contenedor);
  5. function onLoadComplete(clip:MovieClip) {
  6. clip.gotoAndStop(50);
  7. clip.texto.text = "Texto pasado desde la pelicula principal";
  8. }
  9. }

Post relacinonados:

  1. Impedir la visualización de archivos SWF individualmente
  2. Pasar variables a la pelicula Fash desde el Html
  3. Controlar inactividad en una pelicula
  4. Clase Contenedor
  5. Legibilidad de los textos

4 Comments »

  1. Comment by Dago — 8 February, 2012 @ 2:10 pm

    wooa! xcelente, lo probaré, mira k me alegraste mi madrugada XD

  2. Comment by Armanda — 28 August, 2008 @ 11:59 am

    Hola, lo comprobé y funciona. Pero quisiera hacerte una consulta, ya que soy bastante inexperta en estas cuestiones. Tu ejemplo es para que funcione al hacer click en un botón pero si quisiera que la película cargara automáticamente al cargar la película que contiene el contenedor. ¿Cuál sería la forma correcta de escribir el código?

    Muchas gracias.

  3. Comment by Armanda — 28 August, 2008 @ 12:02 pm

    Mmmm otra cosa yo escribí el código así :

    bot_btn.onRelease=function(){
    var loader:MovieClipLoader = new MovieClipLoader();
    loader.addListener(this);
    loader.loadClip("p2.swf", cont_anim_mc);
    function onLoadComplete(clip:MovieClip) {
    clip.gotoAndStop("auto");
    }
    }

    Estoy comentiendo alguna barbaridad?
    Gracias.

  4. Comment by admin — 28 August, 2008 @ 12:22 pm

    @Armanda: Si lo que quieres hacer es que cargue directamente con la pelicula principal lo único que has de hacer es poner el código fuera de la función onRelease(); pociendolo directamente en el fotograma.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Get Adobe Flash playerPlugin by wpburn.com wordpress themes