miércoles, 13 de febrero de 2013

Añadir sonido mp3 a animación con ActionScript 3.0

El siguiente tutorial flash es una continuación del anterior: Tutorial flash: Efecto cascada con lago. Lo que haremos será añadirle el sonido del agua. Añadiré un archivo agua.mp3 de tan solo 2 segundos para que sea más ligero:


Tenemos que guardar el archivo .mp3 que queramos reproducir, en la misma carpeta en la que tenemos nuestro proyecto de la cascada:
En mi caso, mi proyecto se llamada cascada y el archivo .mp3 que le voy a poner se llama agua. Ambos están en la misma carpeta.

Para poder reproducir el sonido, modificaremos el fotograma de acciones en el que introdujimos anteriormente el código para hacer el efecto del agua. Añadiremos el siguiente código:

var req:URLRequest = new URLRequest("agua.mp3");
var musica:Sound = new Sound(req);
var canal:SoundChannel = new SoundChannel();
canal = musica.play(0,99);

En agua.mp3 tendrás que poner el archivo que quieras reproducir en la animación. (También podríamos poner una url absoluta).
canal = musica.play(0,99); nos indica la posición inicial desde la que se empezará a reproducir el archivo (en este caso 0) y el número de veces que se va a reproducir el sonido (en este caso 99 veces). Si lo dejáramos así: canal = musica.play(); el sonido se reproduciría 1 vez desde el prinicipio.

Con el código insertado de esta manera, el sonido se reproducirá automáticamente cuando alguien vea nuestra animación.


Yo en este ejemplo haré que el sonido se reproduzca cuando le demos a un botón de play. Para ello añadiré una nueva capa al proyecto e importaré la imagen del botón:
Seleccionamos nuestro botón y hacemos click en F8 para convertirlo en Botón con el nombre: botonSonido
En nombre de instancia también tendríamos que ponerle el mismo nombre:
Ahora volvemos al fotograma en el que introdujimos el código. Eliminaremos la línea:
canal = musica.play(0,99);
para que no reproduzca automáticamente.
Añadimos:

botonSonido.addEventListener(MouseEvent.CLICK, reproducirMp3);
function reproducirMp3(event:MouseEvent) {
canal = musica.play();
}

El código completo para que el sonido se reproduzca cuando hagamos click en nuestro botón quedará de la siguiente manera:

var req:URLRequest = new URLRequest("agua.mp3");
var musica:Sound = new Sound(req);
var canal:SoundChannel = new SoundChannel();

botonSonido.addEventListener(MouseEvent.CLICK, reproducirMp3);
function reproducirMp3(event:MouseEvent) {
canal = musica.play();
}


Si quisiéramos hacer un botón extra paradetener el sonido, tendríamos que seguir el procedimiento del botón de play, pero en vez de añadir la línea:
canal = musica.play();
deberíamos añadir la línea:
canal.stop();


1 comentario: