Hola, tengo un problema que no puedo resolver y espero que puedan darme una mano, el tema es el siguiente:
1 tengo una clase que debería cargar los sonidos de una subcarpeta y reproducirlos, (esto anda bien) pero a su ves he añadido unos dispatchEvent para que al iniciar el sonido ejecute una funcion dentro de un .fla que anime a un personaje (mueva los labios), tambien he añadido otro dispatchEvent que se dispara cuando termina la duracion del sonido y de esta forma con una funcion detenga la animacion de los labios y asu ves avance la pelicula (play). El tema es esos disparadores solo se estan activando la 1ra ves que los ejecuto, en una misma linea de tiempo necesito hacer que el personaje "hable" varias veces y solo funciona el cambio de sonido mas no se vueve a activar el dispatchEvent.
les dejo mi codigo a ver si puden ayudarme, ya me amaneci buscando solucion y nada!!
Sonido.AS
=======
import flash.display.MovieClip;
public class Sonidos extends MovieClip {
private var url:String
private var song:SoundChannel;
public function Sonidos(url:String) {
var sonido:Sound = new Sound();
var urlSonido:URLRequest = new URLRequest(url);
var canal:SoundChannel = new SoundChannel ();
var trans:SoundTransform = new SoundTransform ();
sonido.addEventListener(Event.OPEN,alComenzar);
sonido.addEventListener(ProgressEvent.PROGRESS,enP rogreso);
sonido.addEventListener(Event.COMPLETE,alCompletar );
trans.volume = .7;
sonido.load(urlSonido);
function alComenzar(evento:Event):void {
trace("Evento al comenzar OPEN");
}
function enProgreso(evento:ProgressEvent):void {
trace("Evento en Progreso PROGRESS");
}
function alCompletar(evento:Event):void {
dispatchEvent(new Event("sonidoIniciado")); //DisparaEvento sonidoIniciado
dispatchEvent(ev);
trace("Evento Cargado COMPLETE");
trace("Reproduciendo");
song = sonido.play(0,1,trans);
song.addEventListener(Event.SOUND_COMPLETE,alTermi nar)
}
function alTerminar(evento:Event):void{
trace("Termino el sonido");
dispatchEvent(new Event("sonidoTerminado")); //DisparaEvento sonidoTerminado
}
}
}
}
Video1.fla
=======
frame24 (aca si funciona todo)
----------
stop();
import com.Sonidos;
var canta:Sonidos = new Sonidos("audio/002.mp3");
import flash.events.Event;
import flash.display.MovieClip;
canta.addEventListener("sonidoIniciado", onHabla);
canta.addEventListener("sonidoTerminado", onCalla);
canta.addEventListener("gameOver",onJojo);
function onHabla(evento:Event):void{
trace("Sonido Iniciado!");
personaje.cabeza.boca.gotoAndPlay("habla");
}
function onCalla(evento:Event):void{
trace("Sonido Terminado!");
personaje.cabeza.boca.gotoAndPlay("calla");
canta.removeEventListener("sonidoIniciado", onHabla);
play();
}
function onJojo(evento:Event):void{
trace("Evento onJojo!");
}
frame 40 (aca solo funciona el sonido)
-----------
stop();
//import com.Sonidos;
var canta3:Sonidos = new Sonidos("audio/003.mp3");
//import flash.events.Event;
//import flash.display.MovieClip;
canta.addEventListener("sonidoIniciado", onHabla2);
canta.addEventListener("sonidoTerminado", onCalla2);
function onHabla2(evento:Event):void{
trace("Sonido Iniciado!!!!!");
personaje.cabeza.boca.gotoAndPlay("habla");
}
function onCalla2(evento:Event):void{
trace("Sonido Terminado!!!!!");
personaje.cabeza.boca.gotoAndPlay("calla");
play();
}
Gracias, es mi 1ra pelicula con flash, disculpen mis burradas....