C'è da chiarire innanzitutto se il suono è un brano lungo oppure un trancio di pochi secondi che deve girare in loop. Nel caso della seconda ipotesi non occorrerebbe nemmeno caricarlo esternamente come swf e cmq non è indicato l'uso del loadSound.
Il caricamento di un brano lungo (parlo di un file mp3), è invece adatto per via dello streaming e dunque non richiede alcun preloader.
Per caricarlo:
suono = new sound();
suono.loadSound("suono_Da_caricare.mp3", true);
Per fermarlo, basta un pulsante che inverta il true:
on (release) {
suono = false;
}
Se metti due pulsanti in un movieclip (Play e Stop, due soli frames stoppati), puoi usare l'on (press) per il carica/scarica e l'on (release) per rimandare la testina nel frame in cui c'è il pulsante opposto.
Es. di pulsante Play (messo nel frame n° 2 del movieclip):
on (press) {
suono = new sound();
suono.loadSound("suono_Da_caricare.mp3", true);
}
on (release) {
this.gotoAndPlay (1); // compare il pulsante Stop
}
Pulsante Stop:
on (press) {
suono = false;
}
on (release) {
this.gotoAndPlay (2); // ricompare il pulsante Play
}
Per quanto riguarda l'onSoundComplete o lo start (0, nVolte), usato allo scopo di loopare l'mp3 caricato, non è colpa di Flash ma della struttura propria di qualunque file.mp3, dato che conterrà sempre una coda di silenzio sia all'inizio che alla fine, direttamente proporzionali alla durata del brano stesso.
Quindi, chi crede di loopare un mp3 col loadSound, oppure con un mp3 importato, si veste di "pia illusione". Ecco perché definisco quell'operazione come "reinizializzazione" e non "loop".
Affinché non si crei alcun silenzio occorre importare un file .wav che sia tagliato "a mestiere".
Ciao,
NAP