Foros del Web » Creando para Internet » Flash y Actionscript »

unLoadMovie...??

Estas en el tema de unLoadMovie...?? en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/06/2010, 03:34
Avatar de touza  
Fecha de Ingreso: febrero-2003
Ubicación: barcelona
Mensajes: 65
Antigüedad: 16 años, 10 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
  #2 (permalink)  
Antiguo 17/06/2010, 03:55
Avatar de golem44  
Fecha de Ingreso: enero-2009
Ubicación: barcelona
Mensajes: 483
Antigüedad: 11 años
Puntos: 22
Respuesta: unLoadMovie...??

Si sintetizas, me lo leo.

saludos
  #3 (permalink)  
Antiguo 17/06/2010, 04:26
Avatar de touza  
Fecha de Ingreso: febrero-2003
Ubicación: barcelona
Mensajes: 65
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: unLoadMovie...??

Mmmm...vale, lo intento. Cargo una película ( index2 ) en un contenedor. En esta película me interesa cambiar la imagen de fondo, así que hago varios botones:

Botón 1 ( cambia a imagen de fondo 1 )
Botón 2 ( cambia a imagen de fondo 2 )
...

Los botones llevan la acción:

on (release) {
gotoAndPlay(fotograma X);
}

En el fotograma X pongo un cargador y la acción:

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

Así, lo que hago en realidad para cambiar la imagen de fondo es cargar otra película igual a la original pero con otra imagen. Pero cuando he cargado la película X con imagen de fondo X y repito la operación de cambiar de fondo, la película original ( index2 ) aún está detrás, de manera que al hacer la transición de la pelicula X a la pelicula Y aparece index2 por detrás.

Si ves el enlace que he puesto lo entenderás. Pincha en foto 2 y cuando haya cargado foto2 pincha en foto3. Verás que antes de aparecer foto3 aparece de fondo la primera foto, la de index2...

Lo que quiero es que cada vez que se cargue un .swf externo desaparezca el .swf anterior, porque tal como lo tengo montado siempre está detrás de todo index2...
__________________
Mi web es http:www.jrey.net
  #4 (permalink)  
Antiguo 17/06/2010, 05:16
Avatar de golem44  
Fecha de Ingreso: enero-2009
Ubicación: barcelona
Mensajes: 483
Antigüedad: 11 años
Puntos: 22
Respuesta: unLoadMovie...??

Prueba así:
on (release) {
unLoadMovie(this);
gotoAndPlay(fotograma X);
}

espero ayudar,saludos
  #5 (permalink)  
Antiguo 17/06/2010, 18:44
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 16 años, 6 meses
Puntos: 406
Respuesta: unLoadMovie...??

Hola touza:
En tu caso si quieres descargar la película que ha sido cargada en el nivel 1, el código debería ser así:
unloadMovieNum(1); y para descargar la película que se carga dentro del MC_vacío: contenedor, el código debes de escribirlo así: contenedor.unloadMovie();

Espero haberte sido de ayuda
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #6 (permalink)  
Antiguo 18/06/2010, 06:23
Avatar de touza  
Fecha de Ingreso: febrero-2003
Ubicación: barcelona
Mensajes: 65
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: unLoadMovie...??

Muchísimas gracias a los dos por contestar. Funcionó lo de

on (release) {
unLoadMovie(this);
gotoAndPlay(fotograma X);
}


Me has salvado la vida golem44...

Saludos y gracias de nuevo
__________________
Mi web es http:www.jrey.net

Etiquetas: unloadmovie
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:03.