Algo que me molesta mucho es cuando quiero "disparar" sonidos simples, en juegos por ejemplo, ya que me gusta sólo hacer una línea y ya. Es sólo un efecto no un player.
Por eso pensé las tres opciones más comunes que tengo que usar:
- El sonido
- La cantidad de Veces a Reproducir
- El Volumen
Para ello la clase PlayBack() permite hacer uso de la siguiente manera:
Código :
// Importamos la Clase import clases.Playback; // Creamos una instancia private var fx:Playback; // Inicializamos. sound_ok es el linkage de mi libreria, //podríamos crearlo aparte, pero para simplificar lo codee directo. //El segundo valor 1 reproducirá el sonido una vez y 0.1 es el volumen fx = new Playback(new sound_ok(), 1, 0.1);
También añadí algunos métodos de acceso:
- pausePlayBack() -> Crea una pausa en la reproducción
- restartPlayBack() -> Luego del pause vuelve a hacer funcionar el sonido
Aquí la Clase:
Código :
package clases { import flash.media.Sound; import flash.media.SoundTransform; import flash.media.SoundChannel; public class Playback { private var mp3:Sound; private var channel:SoundChannel; private var times:Number; private var volume:Number; private var transform:SoundTransform; function Playback(Music:Sound, Times:Number, Volume:Number ) { mp3 = Music; times = Times; volume = Volume; transform = new SoundTransform(volume); init(); } private function init():void { channel = mp3.play(0, times, transform); } public function pausePlayBack():void { transform = channel.soundTransform; transform.volume = 0; channel.soundTransform = transform; } public function restartPlayBack():void { transform = channel.soundTransform; transform.volume = volume; channel.soundTransform = transform; } } }
- Espero les sirva de algo ! . -
Saludos, Hernán . -
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por lucas el 05 de Junio de 2010
Al principio tuve que poner:
"package{" en lugar de "package clases { "
después cambiar variables "volume" y "transform" en cada función también.
Y en el frame principal hice algo así:
import Playback;
import flash.net.URLRequest;
import flash.events.MouseEvent;
var a:Sound;
rep.addEventListener(MouseEvent.CLICK,function(){Reproduce("12. How.mp3");});
function Reproduce(file:String):void{
var url:URLRequest=new URLRequest(file);
a=new Sound(url);
var so:Playback = new Playback(a, 1,1);
para.addEventListener(MouseEvent.CLICK,function(){ so.pausePlayBack(); });
}
No sé si es correcto hacerlo así, pero funcionó, empecé hace unos días con as3 y ando algo mareado .
Saludos y gracias por la clase
Por miguelangeltorres el 19 de Enero de 2012
GRACIAS !!!!!!!!!!