Allora ecco i pezzi di codice:
Nel primo fotogramma dichiaro tutte le variabili dei suoni e dei pulsanti dei relativi oggetti presenti in libreria e poi li metto in due Array per pescare di volta in volta in modo casuale e le due funzioni "bene" e male" che richiamo con l'evento click del mouse:
codice:
var AEROPLANO:aeroplano = new aeroplano();
var AMBULANZA:ambulanza = new ambulanza();
var ANATRA:anatra = new anatra();
....
var puls_AEROPLANO:puls_aeroplano = new puls_aeroplano();
var puls_AMBULANZA:puls_ambulanza = new puls_ambulanza();
var puls_ANATRA:puls_anatra = new puls_anatra();
....
var suoni:Array = [AEROPLANO,AMBULANZA,ANATRA....]
var scelte:Array = [puls_AEROPLANO,puls_AMBULANZA,puls_ANATRA...]
function bene(e:MouseEvent):void {
beep.play();
if (livello < 20){
gotoAndStop("corretto")
} else gotoAndStop("fine_giusto")
}
function male(e:MouseEvent):void {
wrong.play();
if (tentativo < 3) {
gotoAndStop("errore");
} else gotoAndStop("fine_errore");
}
Dopodiché nel fotogramma "esercizio" scrivo il seguente codice:
codice:
if (tentativo == 1) {
caso1 = Math.floor((suoni.length)*Math.random());
dasuonare = suoni[num1];
var risposta1 = addChild(scelte[num1]);
suoni.splice(caso1,1);
scelte.splice(caso1,1);
possibilità = scelte.slice();
caso2 = Math.floor((possibilità.length)*Math.random());
var risposta2 = addChild(possibilità[caso2]);
possibilità.splice(caso2,1);
caso3 = Math.floor((possibilità.length)*Math.random());
risposta3 = addChild(possibilità[caso3]);
possibilità.splice(caso3,1);
caso4 = Math.floor((possibilità.length)*Math.random());
var risposta4 = addChild(possibilità[caso4]);
}
soundChannel = dasuonare.play();
risposte = [risposta1,risposta2,risposta3,risposta4]
for (i = 0; i < 4; i++ )
{
caso = Math.floor(Math.random()*risposte.length);
risposte[caso].x = posizioni[i][0];
risposte[caso].y = posizioni[i][1];
risposte[caso].scaleX = 0.75;
risposte[caso].scaleY = 0.75;
risposte.splice(caso,1)
}
risposta1.addEventListener("click", bene);
risposta2.addEventListener("click", male);
risposta3.addEventListener("click", male);
risposta4.addEventListener("click", male);
Se si da la risposta giusta nel fotogramma "corretto" c'è semplicemente il seguente codice e un pulsante che fa tornare all'esercizio:
codice:
soundChannel.stop();
removeChild(risposta1)
removeChild(risposta2)
removeChild(risposta3)
removeChild(risposta4)
feedback_ok.addEventListener("click", function(){
gotoAndStop("esercizio");
});
Come dicevo mi sono accorto che se lo stesso oggetto in una prova è "dentro" risposta3 e in una successiva "dentro" risposta1, quando premo vengono eseguite sia la funzione "male" (per prima) sia la funzione "bene".