Con esta función, evitamos que el sonido se ‘dispare’ de repente, creando un efecto fade al iniciar o finalizar un loop.
Parámetros
soundObj: objeto sonido
startLevel: volumen inicial
maxLevel: volumen máximo
inc: incremento
setVolumen = function (soundObj, startLevel, maxLevel, inc) {
soundObj.setVolume(startLevel);
this.createEmptyMovieClip("loopSound", this.getNextHighestDepth());
startLevel<maxLevel ? vol=inc : vol=-inc;
this.loopSound.onEnterFrame = function() {
startLevel += vol;
soundObj.setVolume(startLevel);
if (soundObj.getVolume() == maxLevel) {
delete loopSound.onEnterFrame;
}
};
};
Uso
Se crea el objeto Sound()
musica_ambiente = new Sound(this);
musica_ambiente.attachSound("ambience");
Como iniciar sonido
musica_ambiente.setVolume(0); musica_ambiente.start(0, 9999); setVolumen(musica_ambiente, 1, 100,1);
Como desactivar
setVolumen(musica_ambiente, musica_ambiente.getVolume(), 0, 1);
Como reactivar
setVolumen(musica_ambiente, musica_ambiente.getVolume(), 100, 1);
Nota
El archivo de sonido, debe ser vinvulado desde la biblioteca para actionScript, para ver como vincular un objeto sonido ver Objeto Sound - Básico
Septiembre 29th, 2004 at 1:35 pm
Lo suyo serí a extender la clase Sound para meter un par de métodos nuevos, en plan fadeIn() y fadeOut(), y así tenerlos para siempre.
Con la base de lo que has hecho aquí implementarlo no deberí a ser muy difí cil, jeje.
Buen ejemplo!!
Septiembre 29th, 2004 at 2:26 pm
Hola Raúl:
Tienes razón, aunque con un método bastarí a, eso si por claridad mejor dos.
Saludos.
Septiembre 29th, 2004 at 2:51 pm
Me gusta toni y propongo una cosa al hilo de lo que comenta Raúl ¿que tal un update?
Septiembre 29th, 2004 at 2:58 pm
Wenga
Diciembre 9th, 2004 at 11:18 pm
como haria para controlar el volumen q esta en un frame,.sin usar linkage?,..gracias,..
lo q pasa es q tengo problemas conm mi preloader…
Diciembre 10th, 2004 at 9:46 am
Para controlar el volumen, tienes que usar el objeto Sound() y el método setVolume() desde un frame no se puede.
saludos