Comunidad de diseño web y desarrollo en internet online

Botón on/off sonido AS2 con movieclips (muy sencillo)

Citar            
MensajeEscrito el 13 Feb 2008 09:41 am
En este tip explicaré una manera de crear un botón que pare y reproduzca el sonido de flash de una manera sencilla y sin mucho código. Pueden ver también este tutorial en el que se consigue algo similar.

La introducción de música de fondo en páginas elaboradas en Flash es algo muy común. Bajo mi punto de vista esto no es ni bueno ni malo, pero hay que prestar atención, obviamente, a que el sonido no sea desagradable y que no penalice en exceso el peso de la película.

Todos tenemos la experiencia de navegar por varias páginas a la vez y que una de ellas emita un sonido y no sabemos cuál es y volvernos locos hasta que cerramos la que nos molesta. Para evitar esto debemos siempre ofrecer la opción de apagar la música y volver a encenderla, por así el usuario será quien elija si quiere o no reproducir el sonido. Además, sería conveniente que la música estuviera siempre apagada por defecto.

Vamos, por tanto, a crear un sólo botón (hecho con Movieclip) que nos permita activar o desactivar la música incluida en la página. Aquí se propone un método, pero puedes aprovechar las partes que mejor te parezcan e introducir tus propias variaciones

Al final tendré 4 clips de película: on (con el estado on), off (con el estado off), botones (incluye ambos estados), música (incluye el sonido con sincronía flujo)

1. Creamos un movieclip donde diseñamos el botón ON y otro para el botón OFF.



2. Creamos un movieclip donde insertamos el sonido. En el panel de propiedades en Sinc (sincronía) seleccionamos flujo. Este tipo de sincronía indica que el sonido se reproducirá en función de que la línea de tiempo del clip se esté reproduciendo. Por lo tanto, tendremos que insertar tantos fotogramas en esa línea de tiempo como dure el sonido. Cuando lo tengamos creado arrastramos una instancia al escenario desde la biblioteca y como nombre de instancia escribimos ‘musica’ (sin incluir las comillas)

3. Ahora creamos el último clip de película que necesitamos, el que incluye a ambos botones. La línea de tiempo de este clip 'botones' tiene este aspecto:



- Tengo una capa con los botones. En el primer fotograma el que muestra el altavoz activo y en el segundo el inactivo

- Una capa con las etiquetas on y off para identificar los fotogramas mediante nombres, en lugar de números. Estas etiquetas las creamos seleccionando el fotograma y escribiendo el nombre que queramos en el panel de propiedades

- En la capa acciones insertamos en el primer fotograma el siguiente código

stop();
this.onRelease = function() {
this.onEnterFrame = function() {
if(this._currentframe ==1) {
this.gotoAndStop(“off”);
this._parent.musica.gotoAndStop(1);
delete this.onEnterFrame;
}
else {
this.gotoAndStop(“on”);
this._parent.musica.gotoAndPlay(1);
delete this.onEnterFrame;
}
}
}

Básicamente lo que se hace es chequear en que estado se encuentra y en función de eso, cambiar de estado deteniendo o activando la reproducción del clip que contiene el audio

4. Ya está todo listo, así de fácil. Arrastramos al escenario de la linea de tiempo principal una instancia del clip que contiene los botones junto al que contiene la música que incluimos anteriormente. Si probamos la película, debería funcionar.

PRESTAR ESPECIAL ATENCIÓN A:

- La sincronía del sonido y crear tantos fotogramas en su línea de tiempo como dure el audio

- Atención al nombre de instancia del clip que incluye el audio para poder llamarlo correctamente

- Tener en cuenta que hemos puesto etiquetas a los fotogramas, por eso en los gotoAnd escribimos un nombre como parámetro

- Al igual que se detiene el clip de película que contiene el sonido podrían incluirse más acciones de la misma naturaleza, por lo que podríamos tener un clip donde hay unas barras representando los sonidos moviéndose de forma contínua y cuando vamos al estado off le hacemos un gotoAndStop(1);

Por betto

83 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Feb 2008 05:11 pm
Buen Tip, supongo... Pero en tal caso no seria mejor utilizar onSoundComplete, 2 keyFrames, y darle un ID al sonido a reproducir ¿?...

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

firefox
Citar            
MensajeEscrito el 14 Feb 2008 09:09 am
Pues no sé si es bueno o no, yo sólo quería aportar un punto de vista. Los diseñadores que poco a poco hemos ido aprendiendo programación estamos menos aventajados en este aspecto que los programadores que se aproximan al diseño y solemos ser rudimentarios

Supongo que hay formas mejores de hacer esto mismo, pero creo que es una manera fácilmente reproducible y extrapolable a otros aspectos

Para un mismo problema puede haber infinidad de soluciones posibles y esta es la que yo propongo. En cualquier caso, gracias por tu sugerencia

Por betto

83 de clabLevel

1 tutorial

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 15 Feb 2008 09:17 pm
Muy bueno tu tip, para alguien que va empezando le acabas de ahorrar muchos dolores de cabeza, pero coincido con M@U.

Saludos.

Por flashreloco

Claber

1310 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Webdesigner & Mandilon 2.0

firefox
Citar            
MensajeEscrito el 01 Jun 2009 04:43 pm
Hola muy bueno!, pero y en As3?, como seria?

Por elfwood

8 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.