|
En este primer ejemplo aprenderemos a trabajar con sonidos, creando un juguete simple.
Bajar resultado final
La libreria contiene los clips del interruptor, el botón y el fondo. Adicionalmente, contiene diez clips de sonido, llamados loop1, loop2, ... , loop5, sample1, sample2, ..., sample5. Todos estos sonidos estan vinculados con estos identificadores para su uso en ActionScript.
El clip del interruptor es un clip de pelicula con dos fotogramas, el botón es tipo boton con sus habituales cuatro fotogramas.
Montamos la pelicula con la siguente manera:
- Colocamos el clip del fondo.
- Colocamos cinco instancias del interruptor. Llamamos las instancias "loop1_btn", "loop2_btn" etc.
- Colocamos cinco copias del botón. Llamamos las instancias "sample1_btn", "sample2_btn" etc.
Los loops
Los interruptores tienen que poder controlar un loop cada uno. Cada loop se puede encender y apagar independientemente de los demás.
Para hacer eso, tenemos que tener un objeto Sound para cada sonido de los loops. Vamos a crear cinco objetos Sound, vinculados a cada uno de los movie clips de los interruptores. Cada interruptor estará encargado de controlar su objeto correspondiente. A cada uno le asignaremos una variable miNumero, para que sepa cual es su sonido.
Un clic al interruptor va a encender o apagar su sonido correspondiente dependiendo de su estado actual. Necesitaremos una variable sueno, para indicarnos si este sonido suena o no.
Los samples
Los samples no tienen ningun control - una vez clicado el botón, se reproducen hasta el final sin que sea posible cualquier accion sobre ellos.
Vamos a tener un objeto sound global, el sampleSound, para reproducir todos los samples.
En la inicialización de la escena, primero creamos los objetos Sound que vamos a necesitar. Guardamos los diferentes objetos Sound en un array, para mayor facilidad de referencia.
losLoops = [] // un Array para cada sonido loop
for (i=1;i<=5;i++){
losLoops[i]=new Sound(_root["loop"+i+"_btn"]);
}Luego creamos el objeto sound para los samples.
sampleSound = new Sound(_root.sample1_btn);
Ahora podemos asociar los comportamientos. A cada clip del interruptor, le asociamos sus dos nuevas variables miNumero (refiriendose al sonido asociado) y sueno (si suena o no el loop, por defecto false).
for (i=1; i<=5; i++){
_root["loop"+i+"_btn"].miNumero =i;
_root["loop"+i+"_btn"].sueno = false;Asociamos el comportamiento al clicar el interruptor:
_root["loop"+i+"_btn"].onRelease = function(){ // si estoy sonando, para el sonido. if (this.sueno){ _root.losLoops[this.miNumero].stop(); this.gotoAndStop(1); this.sueno = false; // si no estoy sonando, inicia la reproducción } else { _root.losLoops[this.miNumero].stop() _root.losLoops[this.miNumero].attachSound("loop"+this.miNumero); _root.losLoops[this.miNumero].start(0,999) //999 bucles this.gotoAndStop(2); this.sueno = true; } } }El comportamiento de los botones es mas sencillo. Al clicarse, reproducen su sonido en el objeto sound sampleSound.
// Asignamos comportamiento a los botones de samples for (i=0; i<=5; i++){ _root["sample"+i+"_btn"].miNumero =i; _root["sample"+i+"_btn"].onPress = function(){ _root.sampleSound.attachSound("sample"+this.miNumero); _root.sampleSound.start() } }