Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2010, 02:34
Avatar de touza
touza
 
Fecha de Ingreso: febrero-2003
Ubicación: barcelona
Mensajes: 65
Antigüedad: 21 años, 2 meses
Puntos: 0
unLoadMovie...??

Buenas, tengo un problema que no logro resolver con mi película flash. A ver si me podéis echar una mano. Os explico:

Para empezar tengo una película con dos capas y un sólo fotograma en cada capa. En la capa uno no tengo ningún objeto en el escenario, ya que es la capa para acciones, así que en el fotograma uno de esta capa he puesto:

contenedor.loadMovie("index2.swf");

En la capa dos he puesto un movieclip con nombre de instancia contenedor en las coordenadas x=0 y=0

Esto hace que se cargue en el contenedor la película index2.swf , que por supuesto tiene el mismo tamaño que la película original desde la que que llamo a index2 y en la que está el contenedor . Hasta aquí todo bien.

Mi película index2.swf se muestran con un fondo concreto ( una imagen que está en una capa por debajo del resto del contenido ). Lo que me interesa es poder cambiar esa imagen de fondo, o sea mostrar fotos diferentes. Como no sé mucho de actionscript, lo he hecho a lo bruto, de manera que al pinchar en un botón x ( el cual se supone que cambia la imagen de fondo ) , este botón me lleva a un fotograma determinado de la película index2:

on (release) {
gotoAndPlay(416);
}

En ese fotograma ( 416 ) he añadido un preloader simulado mientras se carga la otra imagen de fondo. Es un truco barato, pero la manera de cambiar el fondo es poner en el fotograma donde está este cargador ( 416 ) la siguiente acción:

stop();
loadMovieNum("foto1.swf", 1);

De esta manera, al pinchar en el botón de "cambiar imagen de fondo" lo que hago en realidad es ir al fotograma 416, donde se muestra un cargador de mentira mientras se carga la película foto1.swf, que es igualita a index2.swf pero con otra imagen de fondo. Ese es el modo en que "cambio" la imagen de fondo, o sea cargando otra película externa con la imagen de fondo diferente.

Hasta aquí todo bien. Yo le doy al botón y veo un "preloader" durante los segundos que tarde en cargarse foto1.swf. El problema es que en foto1.swf también tengo la posibildiad de cambiar de fondo otra vez ( en realidad la idea es tener varios fondos disponibles, con una pelicula distinta para cada fondo ). Pues bien, una vez en foto1.swf repito la operación. Pincho en el botón de "cambiar a imagen de fondo 3" ( por poner un ejemplo ) y en ese botón le pongo:

on (release) {
gotoAndPlay(417);
}

En el fotograma 417 hay otro preloader "falso" y la acción:

stop();
loadMovieNum("foto3.swf", 1);

Pues la cosa es que funciona, pero....hay un problema. Todas mis pelícuilas ( index2.swf, foto1.swf, foto2.swf, etc...) que son la misma repetida con diferente fondo, empiezan con una animación de máscara de capa que muestra progresivamente el contenido. Pues entonces, cuando paso de index2.swf a foto1.swf ( o a foto2.swf o a la que sea ) no hay problema, pero cuando cargo una película externa desde cualquier movieclip que no sea index2.swf ( que siempre es la primera película que se carga en el movieClip contenedor ) , veo que antes de mostrar la película que sea aparece de fondo index2.swf. O dicho de otra manera: index2.swf nunca desaparece, siempre está de fondo.

Esto provoca que la primera transición sea natural ( de index2 a foto1/foto2... ), pero la segunda no, ya que cuando paso de foto1 a foto2 aparece index2 antes. Podéis ver lo que quiero decir aquí...

http://www.javirey.es/timeroad/prueba.html

Si pincháis abajo en el número 2 ( Foto 2 ) veréis que la transición entre películas es natural, pero una vez haya cargado la nueva imagen de fondo ( o sea la nueva película ) probad a pinchar en Foto 3. Como veréis, aparece index2 de fondo hasta que se carga la foto 3. Esto supongo que es porque en realidad nunca ha dejado de estar index2 de fondo.

Supongo que la solución pasaría por meter un unloadMovie en algún sitio, pero no sé como !!. La prueba que hice fue la siguiente: dentro de la película foto1.swf, en el botón de "cambiar a imagen de fondo 2", he puesto:

on (release) {
index2.unloadMovie();
gotoAndPlay(417);
}

Como sé que antes de foto1.swf siempre se va a cargar index2 , pues pensé que a lo mejor haciendo desaparecer index2 no tendría ese problema...Pero que va, no funciona. He probado a meter el unloadMovie de mil maneras diferentes ( unloadMovieNum...) y en mil sitios ( botón, fotograma...) , pero no logro que funcione...

Alguna sugerencia ??

Gracias y perdonad por el rollazo.

Saludos

Javi
__________________
Mi web es http:www.jrey.net