Sincronizar sonido-animación Flash y controlarlo
Hola.
Que yo sepa la única manera de sincronizar exactamente una animación flash con su sonido es poniéndolo en línea de tiempo como sonido de flujo.
El tema es que de esta forma no encuentro manera de controlarlo mediante actionscript para poder pararlo cuando se pulse el botón music off. Solo podía hacerlo con stopAllSounds pero claro, si se vuelve a pulsar music on el sonido no vuelve a reproducirse.
Finalmente, se me ha ocurrido poner el sonido dentro de un movieclip como sonido de flujo y hacer que el botón music off haga stop a ese movieclip y el music on haga play recuperando el número de fotograma de la animación. La verdad es que esto me ha funcionado pero, ya que le he dado tantas vueltas, me gustaría saber si alguno de vosotros tenéis una manera mejor.
Un saludo y muchas gracias
almostDesign
Si, lo veo muy interesante para programar el típico botón de "music off" o "sounds off".
tpmmds
Hola:
Venga, una ronda para todos que paga Domestika :-)).
Sólo añadir que esto viene muy bien para hacer un "mute", o para bajar el volumen de todos los sonidos a la vez; pero que es bastante peligroso si nos olvidamos que lo hemos hecho. Sería recomendable comentar con letras MAYÚSCULAS al principio del código que se pone el volumen global a cero al hacer mute. No ha sido la primera vez que he hecho algo de esto, me he llevado el componente a otro Flash, y me he tirado un buen rato hasta darme cuenta de porqué no sonaba nada (bueno, yo es que tengo muuuuy mala memoria :-( )
Un saludo.
Odrakir
Bueno, no pasa nada a mi me vale con un copazo :P
almostDesign
La verdad es que a ti te debo unas cuantes también. Que siempre que pregunto algo de flash por aquí contestáis vosotros o Cai.
Cagonlaleshe... que no voy a tener pa tantas cervezas!!
:D
Odrakir
Mecagonlaleche! Has probado lo que te he puesto yo? Quitaría el volumen de esa película sí o sí. Y solo de esa película. Está claro que si quieres quitar el volumen de todo el site es sin el parámetro.
Que yo también quiero unas cerves leñe! :D
almostDesign
Que interesante!!
Muchas gracias tpmmds.
Te debo unas cuantas cervezas ya, eh...
tpmmds
...si, afecta a TODA la película. Si cambiamos de esta forma el volumen, cambiara el de todos los sonidos que se estén reproduciendo. Ventaja, o inconveniente, de no tener canales.
Odrakir
Había entendido que querías para el sonido de esa película solamente.
tpmmds
BuenAS:
El anterior código es válido pero No pases ningún parámetro a la clase Sound cuando crees el sonido:
var snd:Sound = new Sound();
snd.setVolume(0);
Cuando se crea un Sound y no se le pasa target, toma el control del sonido de TODA la película. Esto haría que todos los sonidos dejaran de oirse. Ventaja, o inconveniente, de AS2, por no tener canales.
Un saludo.
Odrakir
Pruébalo, yo creo que eso te valdría para mutear el sonido que estuviera en la linea te tiempo del clip que he llamado "clip_sonido".
almostDesign
El problema es que con eso que me pones obtienes un sonido normal (de evento), que no se sincroniza con la animación.
Odrakir
Pues si es AS2 te comes una linea :)
var snd:Sound = new Sound(clip_sonido);
snd.setVolume(0);
Pero sí, ya es hora de cambiarse ;)
almostDesign
Mmm, es AS2.
Creo que ya va siendo hora de cambiarse...
Odrakir
Si es as3 puedes referirte al clip que contiene el sonido así:
var stfm:SoundTransform = clip_sonido.soundTransform;
stfm.volume = 0;
clip_sonido.soundTransform = stfm;