Comunidad de diseño web y desarrollo en internet online

Canciones por escenas

Citar            
MensajeEscrito el 27 Oct 2014 11:10 pm
¡Buenas!

Tengo 2 escenas. En cada una, una canción. El problema es que si silencias el audio de la escena 1 y te vas a la escena 2 y luego vuelves a la escena 1, se vuelve a escuchar la canción, y me gustaría que guardara que si ya la has silenciado, no vuelva a sonar si no le das al botón.

Este es el código que uso:

SoundMixer.stopAll();
botonSonidoOn.visible= false;


//Activar sonido
var sonidoMenu:Sound;
sonidoMenu=new Sound(new URLRequest("stars.mp3"));
var canal_sonido:SoundChannel;
canal_sonido=sonidoMenu.play(0,int.MAX_VALUE);

//Botones Play/Stop
botonSonidoOff.addEventListener(MouseEvent.CLICK,desactivarSonido);
function desactivarSonido(e:MouseEvent):void{
botonSonidoOff.visible=false;
botonSonidoOn.visible=true;
canal_sonido.stop();
}
botonSonidoOn.addEventListener(MouseEvent.CLICK,activarSonido);
function activarSonido(e:MouseEvent):void{
botonSonidoOn.visible=false;
botonSonidoOff.visible=true;
canal_sonido=sonidoMenu.play(0,int.MAX_VALUE);
}

¿Alguien sabe cómo podría guardar si el usuario ha parado el sonido?


Muchísimas gracias de antemano,


Mar

Por Mar_88

16 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 28 Oct 2014 07:31 am
Se me ocurre que puedes crear una variable global de tipo Boolean que pones a True por ejemplo si has parado el sonido.

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 28 Oct 2014 07:41 pm
¡Gracias por contestar empardopo!

No entiendo de variables, y no entiendo como cuando vuelves a la escena 1 se puede guardar que lo has silenciado, si se inicia el código no??
Estoy muy perdida.


Mar

Por Mar_88

16 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 29 Oct 2014 07:10 am
Mar, no tendo ni idea de Flash, ni siquiera se lo que es una escena, jeje! No sé si será el equivalente a los state de Flex.

Bueno, vamos a intentar hacer una cosa... Tienes esta parte de código

Código ActionScript :

//Activar sonido
var sonidoMenu:Sound;
sonidoMenu=new Sound(new URLRequest("stars.mp3"));
var canal_sonido:SoundChannel;
canal_sonido=sonidoMenu.play(0,int.MAX_VALUE);


Vamos a crearnos una variable de tipo boolean inicializada a true.

var activadoSonidoEscena1:Boolean = true;

y delante de la instrucción canal_sonido vamos a decir que el sonido sonará si la variable que hemos creado es true, vale?
if(activadoSonidoEscena1){
canal_sonido=sonidoMenu.play(0,int.MAX_VALUE);
}

De forma que esa parte del código debería quedar así

Código ActionScript :

//Activar sonido
var activadoSonidoEscena1:Boolean = true; //añadido por empardopo
var sonidoMenu:Sound;
sonidoMenu=new Sound(new URLRequest("stars.mp3"));
var canal_sonido:SoundChannel;
if(activadoSonidoEscena1){                                      //añadido por empardopo
   canal_sonido=sonidoMenu.play(0,int.MAX_VALUE);   //añadido por empardopo
}                                                                        //añadido por empardopo


Si lo dejamos así es como si no hubiéramos hecho nada así que necesitamos hacer lo que tú quieres que es que si pulsas el botón luego recuerde que lo pulsaste, no?
Pues entonces, lo que habría que hacer es añadir las líneas necesarias en tus funciones desactivarSonido y
activarSonido, ok?

Quedando algo así

Código ActionScript :

function desactivarSonido(e:MouseEvent):void{ 
activadoSonidoEscena1 = false; //añadido por empardopo
botonSonidoOff.visible=false; 
botonSonidoOn.visible=true; 
canal_sonido.stop(); 
} 


y

Código ActionScript :

function activarSonido(e:MouseEvent):void{ 
activadoSonidoEscena1 = true; //añadido por empardopo
botonSonidoOn.visible=false; 
botonSonidoOff.visible=true; 
canal_sonido=sonidoMenu.play(0,int.MAX_VALUE); 
} 


Prueba a ver. Es lo único que se me ocurre desde mi ignorancia de Flash, jeje!
Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 30 Oct 2014 01:32 am
¡Gracias por contestar empardopo!

Con eso sólo se consigue que funcionen los botones, y los botones ya funcionan sin la variable. El problema está en que guarde si el sonido de la escena 1 está apagado o encendido en la escena 2, para cuando vuelvas a la escena 1 esté como lo dejaste.


¡Gracias de todas formas!



Mar

Por Mar_88

16 de clabLevel



Genero:Femenino  

chrome
Citar            
MensajeEscrito el 30 Oct 2014 08:00 am
Lo has probado y no funciona?
Puedes poner tu proyecto para probarlo ... Ya es algo personal el ver como funciona un poco el tema flash ...

Por empardopo

71 de clabLevel



 

chrome

 

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