Comunidad de diseño web y desarrollo en internet online

parar varios sonidos de un swf externo

Citar            
MensajeEscrito el 19 Feb 2011 11:40 am
Buenas, a ver sí me podeis echar un cable. He estado buscando en el foro y he encontrado una solución a medias, me falta la otra media jeje.
Bien, tengo un archivo principal, con un botón para volver al menú siempre que se quiera, desde ese archivo llamo a varios swf externos, los swf están divididos en 2 escenas, la intro y el tema, esas 2 escenas tienen una locución cada una. Cada vez que se vuelve al menú hay una acción:

Código ActionScript :

function regeneraMenu(event:MouseEvent):void {
         SoundMixer.stopAll();
         swf_Loader.unload();
         creaMenu();
      }

Vale, el problema lo tengo si le doy al botón de menú antes de que acabe la intro del swf, se para el sonido de la intro, pero al poco, empieza la locución del tema. Me estoy volviendo loco, el tío no para de hablar. Muchas gracias de antemano, un saludo.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 11:58 am
Eso es porque supongo que el sonido está en la peli que cargas, la paras, pero al volverla a cargar se dispara de nuevo. Si es la misma peli, quizás en vez de descargarla deberías simplemente reposicionarla o lo que necesites, Si la vuelves a cargar, deberás volver a parar el sonido

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Feb 2011 12:11 pm
Si que están dentro del swf externo, pero no es la misma película, son distintas y el problema se repite, ya te digo que para el sonido de la intro pero sigue la locución de la siguiente escena, cuando en pantalla, tengo el menú, he parado el sonido, he descargado la película, he probado a crear otra película externa, que contenga ese swf externo, y aún así, se sigue disparando el sonido de la siguiente escena, no lo consideraría grave, sino fuera por el hecho de que hay películas con 4 o 5 escenas (todavía no las he probado) pero me dá, que por ejemplo, si estoy en la escena 2 y le doy al menú, seguirian las locuciones de las escenas 3,4,5...etc. Lo dicho, no lo he probado, pero seguro que sigue la misma tónica. Otra cosa, me refiero a escenas dentro del mismo swf externo, no a escenas en el archivo principal, es que es difícil expresarse sin expresiones, valga la redundancia jeje.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 12:19 pm
Prueba primero haciendo el unload y depués el SoundMixer.stopAll();

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Feb 2011 12:32 pm
Nada, sigue igual...como algo, aparentemente tan sencillo, resulta tan complicado? No le entiendo, de verdad. Gracias por la respuesta

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 12:43 pm
Mira como está puesto el sonido en el swf cargado ¿Es un sonido tirado en la línea de tiempo?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 Feb 2011 12:48 pm
En eso estaba pensando, lo que pasa es que esa parte la está haciendo un amigo y compañero, ahora mismo no puedo localizarlo, aunque me parece que sí, que está en la línea de tiempo. ¿Cómo habría que meterlo o configurarlo?¿Tal cúal?¿Código? En cuanto lo localice le pido los archivos fuente, aunque en tema de sonido estoy pez, la verdad.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 06:52 pm
Bueno, ahora si que no entiendo nada, he repasado el código entero, de inicio a fin, y se me ha ocurrido una cosa, digo -Voy a quitar el addChild que me posiciona el Loader en pantalla- y...sorpresa! La película no aparece, cosa evidente, pero se empieza a escuchar al tío hablar!!!
Lo dicho, sólo sé, que no sé nada.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 07:12 pm
BuenAS:

Bastante lógico: addChild lo que hace es añadir el elemento a la lista de visualización. O sea, hace que se vea dentro del Sprite/MovieClip al que haces el addChild. De hecho, un MovieClip puedes cambiarlo de contenedor tantas veces como estimes oportuno, o no tenerlo en la lista de visualización (removeChild).

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 19 Feb 2011 07:29 pm
Muchas gracias por las respuestas, ya he encontrado la solución, un fallo mio y muy evidente

Código ActionScript :

swf_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, carg);   
function carg(event:Event):void {
   main_mc.addChild(swf_Loader);
}

Al no poner el EventListener, y no esperar a que se cargara, estaba metiendo en el Loader (swf_Loader), un objeto null. Aún así, tengo la solución, pero no muy bien entendida. Y es más, sigo sin entender como sonaba el audio del swf externo, sólo habiendolo cargado. ¿Una vez que se mete un SWF en un Loader se dispara el audio de ese SWF?

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 08:05 pm
BuenAS:

Con addChild y removeChild lo que se hace es AÑADIR y SUPRIMIR elementos de la lista de visualización (DisplayList); o sea, que se vean o que no se vean dentro de un determinado contenedor. El MovieClip que has cargado lo tienes en memoria funcionando.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 19 Feb 2011 08:45 pm
No entiendo muy bien eso. ¿A qué MovieClip te refieres?¿A main_mc?

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 19 Feb 2011 08:57 pm
...el que se carga dentro del loader "swf_loader". En la propiedad swf_loader.content tienes el MovieClip que has cargado (una vez que se haya cargado, claro).

De hecho, si quisieras, podrías "sacarlo" de ahí y añadirlo a otro MovieClip.

Si quieres "verlo", haz una prueba: pulsa con el ratón al comienzo de la línea de código:

main_mc.addChild(swf_Loader);

y verás aparecer un pto rojo. Ahora en lugar de complilar con Ctrl+Intro HAZLO PULSANDO Ctrl + May. + Intro. Ahora cuando cargues el swf se parará en esa línea de código. Ve al panel de variables y verás que en

swf_Loader.content

tienes que tener un MovieClip con todos los simbolos/propiedades que tenga dicho MovieClip

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 20 Feb 2011 11:49 am
Perdón, anoche reunión familiar, ya sabéis jeje.

A ver si me he enterado, cuando cargo swf externo, ¿lo considera un MovieClip? He hecho la depuración, y en el panel de variables lo que me aparece es un "this" y un "event", dentro del "event" está el "currentTarget" y el "target", y cada uno tiene su "content" con el tipo del swf externo, pero nada de símbolos, movieclips....

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 20 Feb 2011 12:18 pm
BuenAS:

El tipo "concreto" que verás depende de cómo se ha compilado el swf (hay bastante posibilidades: para Flash Player 8 o inferior, para Flash Player 9 o superior; el swf se genera a partir de una clase documento que extiende de Sprite; lo mismo, pero extendiendo de MovieClip; el código se escribe en la línea de tiempo...).

Supuse que los swf's que cargas son los típicos con código en la línea de tiempo.

Pero para no irnos del tema, lo importante es que ahí tienes un DisplayObject (un MovieClip, un Sprite, una Clase que extiende de alguno de los anteriores...) con el contenido del swf cargado y DEBES PODER VER todas las propiedades públicas, funciones, símbolos, etc. que tenga. Y lo más importante, que lo tienes en memoria, independientemente de que lo hayas añadido a la lista de visualizacion (o sea, que hayas hecho un addChild).

No sé si consigo explicarme, es que lo hago fatal :(

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 20 Feb 2011 12:56 pm
Ahora si me has matao, pongo una captura
[url=http://picasaweb.google.com/lh/view?q=variables%20as3&psc=G&filter=1#5575751657696968546][/url]
Lo que no había dicho es que los swf externos están en AS2. Otra cosa, no me aclaro muy bien con las imágenes, así que he subido a picasa la foto y pongo el enlace, ok?

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 20 Feb 2011 02:24 pm
BuenAS:

Sospechaba algo de esto. Si el swf es AS2 corre en la maquina virtual AVM1, por eso ves AVM1Movie.

Como sabrás AS3 y AS2 son totalmente incompatibles ya que corren en máquinas virtuales distintas: ActionScript 3 en la AVM2 y ActionScript 2 en la AVM1. Y con AS3 NO PUEDES acceder al código AS2.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Feb 2011 10:33 am
Correcto. Aunque yo no quería acceder al código, sólo quería parar el sonido de esas películas. De todas maneras, era algo en lo que estaba interesado tambien, no lo he intentado todavía pero, sí que haré pruebas al respecto, es un terreno que aún me queda un poco grande. Muchas gracias por las respuestas. Un saludo.

Por evilactiviti

27 de clabLevel



Genero:Masculino  

msie8
Citar            
MensajeEscrito el 07 Jul 2012 04:02 am
Lukánicos: saludos, tengo un problema parecido al cambiar de externo sigue sonando el anterior , como dices sigue en la memoria, pero como puedo hacerlo para eliminar totalmente el externo de la memoria y que se ejecute el otro externo sin sobreponer los sonidos... yo uso AS3

Por XavoXs

1 de clabLevel



Genero:Masculino  

firefox

 

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