Comunidad de diseño web y desarrollo en internet online

Música de fondo con AS3

Citar            
MensajeEscrito el 23 Feb 2009 09:08 pm
Hola a todos, completé un primer paso con la yuda de este foro. :cool: Ahora tengo otra inquietud. :?
Con AS3, necesito que haya un fondo musical en el archivo swf, debe estar repitiendose indefinidamente y que haya un botón con el que pueda regular el volumen de ese sonido.
De antemano gracias a todos quienes puedan ayudarme. :wink:

Por Efrain_vc

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 23 Feb 2009 10:53 pm
Si lo vas a poner por codigo tienes 2 formas de hacerlo:

1.- De la biblioteca:
Agregas tu sonido ala biblioteca y en las opciones de "linkage" lo exportas para actionscript
le das un nombre de clase y creas tu instancia.

Código ActionScript :

//Suponiendo que en el linkage lo llamaste MFondo
var mi_sonido:MFondo=new MFondo();



2.-Cargandolo externo:
Creas una variable de tipo Sound y lo cargas.

Código ActionScript :


//Creas la variable sonido
var mi_sonido:Sound;

//Cargas el sonido mandando como parametro un URLRequest con la ruta en este caso 
//supondremos que se llama MFondo y esta en la misma carpeta que mi .fla 
mi_sonido=new Sound(new URLRequest("MFondo.mp3"));

Con alguna de estas dos formas ya creaste tu sonido tu elige la que te convenga, ahora vamos a hacer que suene indefinidamente.

Al mandar llamar play() se crea un canal de sonido y a este canal de sonido le podemos controlar el volumen que es lo que tu quieres para esto crearemos un canal de sonido propio.

Código ActionScript :

//Previamente creado mi_sonido,creo mi canal de sonido
var canal_sonido:SoundChannel;

//Le damos play a mi_sonido.....el metodo play recibe varios parametros es comun usarlo sin parametros (play();)
nosotros usaremos los primeros 2 que es la posicion donde inicia el sonido (0=desde el inicio) y el numero de loops 

canal_sonido=mi_sonido.play(0,int.MAX_VALUE);
//El metodo play crea un canal de sonido que almacenamos en nuestro canal propio de volumen
//no podemos indicarle que sea infinito pero si le damos el numero mas alto de repeticiones posible creeme nunca 
//necesitaras mas 



Ahora el sonido se repite indefinidamente, pero falta controlar el sonido para esto creamos un objeto soundTransform puedes leer la documentacion de adobe para informarte mas sobre este objeto.

Código ActionScript :


var volumen:SoundTransform=new SoundTransform(0,0);
//A este objeto le puedes ajustar el volumen 0=no se escucha nada  1=volumen maximo


El codigo de tu boton seria.

Código ActionScript :

//Cada click aumenta .2 el volumen(cambialo por el de tu agrado)

volumen.volume+=.2;
//valida que no se pase de 1 esto por si quisieras crear un boton que baje el volumen te evitas malas sorpresas con los rangos
if(volumen.volume>1){
volumen.volume=1;
}
//Asignas este volumen a tu canal de sonido previamente creado

canal_sonido.soundTransform=volumen;


Saludos!!!:)

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Feb 2009 12:39 am
Se agradece bastante por el dato. Voy a probarlo enseguida y luego te cuento. Si en algo no me resulta, espero seguir contando con el apoyo. :wink:

Por Efrain_vc

8 de clabLevel



 

msie
Citar            
MensajeEscrito el 26 Feb 2009 04:09 pm
Muchas gracias por el apoyo recibido, me funcionò a la perfección (no está mal para alguien que no sabe nada de AS3):)

Por Efrain_vc

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Feb 2009 11:03 pm
No hay nada que agradecer para eso estamos !!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Mar 2009 04:48 am
Muy bueno :)

Por aggust

26 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 26 Ene 2010 11:19 pm
hola..
Cada vez que pregunto algo lo hago con miedo.
Soy un loco copypaste... no entiendo nada de programacion y al final hago que funcionen las cosas no se cómo.
Me queda una duda... cómo vinculo el codigo con el boton de volumen?
gracias por la atención

Por isayui

3 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Ene 2010 12:40 am
Lo mejor es que la pregunta la hagas en otro post..

Asi rapidamente porq voy de salida vinculas el boton con un listener .

Checa la ayuda de adobe o aqui el mismo foro hay buena info

Código ActionScript :

//Agregas el listener a tu boton en este mi caso mi boton se llma "boton" (que original"
boton.addEventListener(MouseEvent.CLICK,TuFuncion);

//Aqui la funcion que recibe de parametro el evento despachado
function TuFuncion(e:MouseEvent){

}


Saludos!! cualquier cosa aqui estamos

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ene 2010 12:46 am
Asumiendo lo has puesto en una Clase y la función publica sea algo como setVolume(Number), lo que tendrías que hacer es:

Código ActionScript :

function changeVolume(e:Event){
    my_clase_sound.setVolume(numero);
}
btn.addEventListener(MouseEvent.MOUSE_UP,changeVolume);


Pero si haces copy paste no te servirá, porque te paso como sería la idea pero no para copiar y pegar. Sorry pero no es lo que buscamos hacer en el foro.

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox
Citar            
MensajeEscrito el 03 Ago 2010 05:04 pm
excelente, funciona todo muy bien.... gracias Angel Roberto... como siempre Cristalab a resuelto mis dudas...

Por gordoadixion

13 de clabLevel



Genero:Masculino  

México

firefox

 

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