Antes de todo una pregunta: ¿Cuando se definen variables adentro de funciones, que no se pueden manipular dentro de las mismas solamente?, en realidad no entiendo cual es la intención de usar una función para hacer lo de attachSound porque en dado caso serviría más si fuera algo así:
Código :
Ambiente("agua","Pozos");
function Ambiente(instancia,amb) {
instancia.attachSound(amb);
instancia.start(0, 999);
}
Porque así podrías usar la misma función para llamar el agua y el fuego pero en fin...
Te recomiendo que uses loadSound en lugar de attachSound porque si tu sonido pesa mucho va a recargar demasiado el primer frame de tu película causando que el loader(si es que tiene o que necesite) se tarde en salir y no aparezca desde 0, bueno, paso a la pregunta:
Con loadSound sería lo siguiente:
Código :
fondo.loadSound("musicafondo.mp3",false); //false para que no sea streaming
esto cargará el sonido en la variable fondo y si estuviera dentro de algún MC("animacion" en este caso) entonces la orden para que se detuviera en el botón sería así:
Código :
on(release){
if (!valor){
_root.animacion.fondo.stop();
valor = 1;
}else{
_root.animacion.fondo.start();
valor = 0;
}
}
La variable "valor" al inicio no está definida, por tanto es "undefined" lo que significa "false"(al menos no significa "true"), en fin, cuando detiene el sonido le asigna 1 a la variable valor para que la siguiente vez valor==1 entonces de el valor 0 y pase a ejecutar el
else en donde se le asigna el valor de 0 para que de 1 y así sucesivamente.
Si no estoy mal este código lo podés utilizar con el attachSound que tenés ahorita, lo que sí tengo seguro es que con loadSound sí funciona pero valdrá la pena probar.
siempre es:
Código :
nombre.attachSound()
para asignarle las propiedades a una variable, espero que esto sirva de algo, hasta luego
Cualquier duda con la explicación definitivamente podés preguntar.