Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/01/2010, 03:50
mgam
 
Fecha de Ingreso: agosto-2008
Mensajes: 51
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: repetir un sonido indefinidamente

Muchas graciasHa quedado un estupendo código para un boton play pausa
de musica de fondo:

stopAllSounds();
/* Primero declaramos dos variables, pausa y estado; pausa nos servirá
para almacenar la posición donde esta la canción, y estado para saber en que
estado se encuentra la canción, 1 si el sonido se está reproduciendo y 0 para el
estado en que el sonido esté en pause*/
var pausa:Number = 0;
var estado:Number = 0;
/* Como no le pusimos ninguna acción al Movie Clip, para que no se reprodujera
como loco, lo frenamos al comienzo*/
Boton_btn.stop();
/*Atachamos inmediatamente el sonido linkeado desde la biblioteca a una variable
llamada: "misonido"*/
if (noRepeat == undefined) {
//Aqui la declaramos para que no vuelva a ser "undefined" y este código se ejecute
//una vez aunque la línea de tiempo vuelva a este KeyFrame
var noRepeat:Number;
noRepeat = 1;
//Creamos una nueva variable de tipo sonido
var misonido:Sound = new Sound();
//Le adjuntamos el sonido que declaramos en la librería como "sonidillo"
misonido.attachSound("musica1");
//Le decimos, que si el sonido ya se termino de ejecutar
misonido.onSoundComplete = function() {
//Vuelva a arrancarlo
this.start();
};
}
//En el evento onPress ó cuando presione el botón
Boton_btn.onPress = function (){
if (estado == 0){
/* se verifica en que estado se encuentra el sonido, si está en 0, ósea el sonido no se esta reproduciendo,
ponemos play al sonido; usamos la variable de pausa que contiene
lo que lleva la canción reproducida hasta el momento en milisegundos, por eso lo dividimos entre 1000;
para que nos de exactamente la posición donde se encuentra*/
misonido.start(pausa/1000);
//Una vez el sonido en play, cambiamos el estado a 1, ósea reproduciéndose
estado = 1;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("pause");
} else {
/*En caso de que no sea 0, significa que se esta reproduciendo la canción y
queremos detenerla, primero calculamos la posición donde se va a quedar en pause
almacenándolo en la variable pausa*/
pausa = misonido.position;
//detenemos totalmente el sonido
misonido.stop();
//cambiamos el estado a 0, ósea sin sonido
estado = 0;
//y finalmente cambiamos la apariencia del botón
Boton_btn.gotoAndStop("play");
}
}