Comunidad de diseño web y desarrollo en internet online

Cómo remover audio al pasar de un swf externo a otro???

Citar            
MensajeEscrito el 26 Jul 2010 08:16 pm
La aplicación es una guía infantil que consta de 10 páginas, paar cada una se hizo una animación individual, esto es un swf por cada página, cada swf jala un archivo de audio externo que se inicia al comenzar la animación, tiene un botón para reiniciar el audio, uno para detenerlo y otro para pasar al siguiente swf. La primera página es el principal swf al que se le van cargando los demás swf. Funciona bien, cuando se pasa de swf el audio se deteniene, carga bien caad swf, en ese sentido no hay problema.

El problema surgió cuando se acordó que se agregaran vistas en miniatura de las páginas para que pudiera ser más fácil accesar a cada una de ellas. Entonces el swf principal quedó como el de las vistas en miniatura y agregué un contenedor donde se cargan los sfw´s de las páginas. Hay un único frame que tiene este código:

Código :

var cargador:Loader = new Loader();
contenedor.addChild(cargador);
cargador.load(new URLRequest ("pag42 43.swf"));

function miniatura (e:Event):void{
cargador.load(new URLRequest ("pag42 43.swf"));
}
tumb1.addEventListener(MouseEvent.CLICK,miniatura);

function miniatura2 (e:Event):void{
cargador.load(new URLRequest ("pag44 45.swf"));
}
tumb2.addEventListener(MouseEvent.CLICK,miniatura2);

function miniatura3 (e:Event):void{
cargador.load(new URLRequest ("pag46 47.swf"));
}
tumb3.addEventListener(MouseEvent.CLICK,miniatura3);

function miniatura4 (e:Event):void{
cargador.load(new URLRequest ("pag46 49 intermedia.swf"));
}
tumb4.addEventListener(MouseEvent.CLICK,miniatura4);

function miniatura5 (e:Event):void{
cargador.load(new URLRequest ("pag48 49.swf"));
}
tumb5.addEventListener(MouseEvent.CLICK,miniatura5);

function miniatura6 (e:Event):void{
cargador.load(new URLRequest ("pag50 51.swf"));
}
tumb6.addEventListener(MouseEvent.CLICK,miniatura6);

function miniatura7 (e:Event):void{
cargador.load(new URLRequest ("pag52 53.swf"));
}
tumb7.addEventListener(MouseEvent.CLICK,miniatura7);

function miniatura8 (e:Event):void{
cargador.load(new URLRequest ("pag54 55.swf"));
}
tumb8.addEventListener(MouseEvent.CLICK,miniatura8);

function miniatura9 (e:Event):void{
cargador.load(new URLRequest ("pag56 57.swf"));
}
tumb9.addEventListener(MouseEvent.CLICK,miniatura9);

function miniatura10 (e:Event):void{
cargador.load(new URLRequest ("pag58 59.swf"));
}
tumb10.addEventListener(MouseEvent.CLICK,miniatura10);


Al correr el swf de las vistas en miniatura, conjuntamente se carga el primer swf. El problema es que si le doy click a las miniaturas si se carga su swf respectivo, pero el audio del swf cargado previamente sigue reproduciéndose, no se ven las animaciones de los swf anteriormente cargados, pero al no tener un removeChild supongo que se están cargando uno encima de otro y ese hace que sigan corriendo los audios. Solo que no he podido resolver como hacerlo, intenté poner removeChild a los botones "tumb" pero pues eso hace que se quite el contenedor y no reproduce el siguiente frame.

Recién estoy empezando en el mundo del AS 3.0 por lo que la aplicación es básica en su estructura y también por ello no he podido resolver este problema, alguna sugerencia???

Por memo hm

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jul 2010 05:41 am
Lo que deberias hacer es cuando avanzas a un nuevo swf silenciar al anterior asi.

suponemos que so es el sonido que cargas

var so:Sound = new Sound();
var sch:SoundChannel = new SoundChannel();
var myTransform = new SoundTransform();

sch = so.play();

y lo que debes hacer para bajar el volumen es esto

myTransform.volume = 0;
sch.soundTransform = myTransform;

primero lo bajas y luego se lo aplicas al sonido que quieras que seria el anterior.

Por 22

79 de clabLevel



 

Uruguay

chrome
Citar            
MensajeEscrito el 27 Jul 2010 06:09 am
Gracias por la contestación pero creo que eso no lo soluciona, ya que el audio que se carga viene jalado desde un swf secundario que a su ves se carga en el swf principal, en el swf secundario si tiene el código para cortar el audio al pasar de un swf a otro, el problema surge cuando estos swf secundarios se cargan en el principal y si a las vistas en miniatura se les da click se cargan en el contenedor pero el audio sigue corriendo, espero poder ejemplificarlo:

audio externo -> se carga en swf secundario -> swf secundario se carga en swf principal
el audio se para al pasar de el audio sigue corriendo al cargar otro swf
un swf a otro

Espero haberme dado a entender.

Por memo hm

6 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Jul 2010 04:13 pm
hola si te entiendo ahora lo que puedes hacer desde el swf que carga a todos es algo asi.

tu cargas los swf de esta manera no ?

var _LoaderXML = new URLLoader();
var url:URLRequest = new URLRequest("miSWF.swf");
_LoaderXML.load(url);

ahi como ves estamos cargando el swf en el objeto _LoaderXML por lo cual si lo casteamos podremos entrar a sus propiedades internas del swf.

var miSWF:MovieClip = _LoaderXML content as MovieClip;
son.apagarVolumen();

ahi lo que estas haciendo es llamar a una funcion publica del swf que cargaste que se llama apagarVolumen donde harias lo que te dije anteriormente.

Espero que ahi te sirva.

Saludos

Por 22

79 de clabLevel



 

Uruguay

chrome
Citar            
MensajeEscrito el 11 Ene 2011 04:26 pm
Hola!

Me encuentro con un problema parecido y nada que puedo solucionarlo.

Tengo un menu de botones, que maneja un movieClip con diferentes comportamientos de easing, bien, todo normal hasta ahi. ahora . dentro de ese movieClip principal, comienzo a llamar SFW's con botones que creo ahi dentro,;bien esos botones adentro llaman el SWF que quiera. Ahora lo que necesito y llevo como una semana tratando de hacer, es remover cualquier SWF que halla cargado desde adentro del movieClip principal cuando de Click en los botones de afuera, los del menu principal.

Agradeceria la ayuda de alguien URGENTE.

Gracias!

Arley

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

chrome

 

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