Estoy haciendo una actividad en la que se tiene que elegir una respuesta de entre 4 a una pregunta. El problema me surge en el momento de leer la pregunta y las respuestas. La pregunta la lee bien y espera a que termine antes de empezar con las respuestas, pero las respuestas las lee todas a la vez.
He intentado pensar otras soluciones, pero no se me ocurre. A ver si podéis echarme una mano.
Éstas son las funciones que tengo hechas.
Código ActionScript :
public function ReproducirPregunta():SoundChannel {
var nombreClase:String="pregunta_"+String(questionNum);
var tempoClase:Class=flash.utils.getDefinitionByName(nombreClase) as Class;
var sonido:Object=new tempoClase ;
var channel:SoundChannel=sonido.play();
return channel;
}
El programa descoloca las respuestas, por lo que primero lee la opción, es decir, opción a, b, c y d, y luego la respuesta.
Código ActionScript :
public function ReproducirRespuesta(opcion:int, num_respuesta:int):SoundChannel {
var nombreClaseOpcion:String="opcion_"+String(opcion);
var nombreClaseRespuesta:String="respuesta_"+String(questionNum)+"x"+String(num_respuesta);
var tempoClaseOpcion:Class=flash.utils.getDefinitionByName(nombreClaseOpcion) as Class;
var tempoClaseRespuesta:Class=flash.utils.getDefinitionByName(nombreClaseRespuesta) as Class;
var sonidoOpcion:Object=new tempoClaseOpcion;
var sonidoRespuesta:Object=new tempoClaseRespuesta;
var channel:SoundChannel=sonidoOpcion.play();
channel.addEventListener(Event.SOUND_COMPLETE, LeerRespuesta);
function LeerRespuesta($evt:Event):void {
channel=sonidoRespuesta.play();
}
return channel;
}
y por último tengo reproducir todo el enunciado, y es aquí donde surgen mis problemas:
Código ActionScript :
public function ReproducirEnunciado():SoundChannel {
var numRespuesta:int = 0;
var canal:SoundChannel=ReproducirPregunta();
canal.addEventListener(Event.SOUND_COMPLETE,ReproducirSiguiente);
function ReproducirSiguiente():void {
canal = ReproducirRespuesta (numRespuesta, desorden [numRespuesta]);
++numRespuesta;
if (numRespuesta <= 3) {
canal.addEventListener (Event.SOUND_COMPLETE,ReproducirSiguiente);
} else {
canal.removeEventListener (Event.SOUND_COMPLETE,ReproducirSiguiente);
};
};
return canal;
}
Muchísimas gracias por anticipado.
