Flash: 5 loop musicali

Di: Pacio | 26/09/2020 18:29:15
vorrei creare un sito con una base musicale di sottofondo e quattro puls che, se cliccati, fanno aumentare gli stumenti musicali che si sentono...ovvero dei puls che aumentano o azzerano il volume di una traccia che si sovrappone alla base.
ho fatto 5 loop musicali (1 base+ 4 stumenti) di egual misura.
non conescendo benissimo AS non sò come realizzare il progetto...
qualcuno ha mai fatto un riproduttore audio (o qualcosa di simile) dove si puo' attivare o disattivare le varie tracce strumentali?

Risposte



Ciao Pacio,
puoi utilizzare l’oggetto Sound per riprodurre suoni e controllarne il volume.
Se i suoni si trovano nella Libreria puoi assegnare ogni suono ad un MovieClip con attachMovie così da controllarlo separatamente.
Naturalmente i suoni che si trovano nella libreria devono essere disponibili per il richiamo tramite ActionScript, per fare questo devi cliccare con il tasto destro sul nome del suono e scegliere la voce Concatenamento, scegliere “esporta per ActionScript” ed assegnargli un nome di riferimento.
Se vuoi usare lo script che scriverò qui sotto devi avere 5 file audio nella libreria, e devi assegnargli questi nomi:
“traccia1”, “traccia2”, “traccia3”, “traccia4”, “traccia5”.
Devi anche avere dei Clip Filmato che userai per controllare il suono, posizionali sullo Stage e assegnagli questi nomi:
“control1”, “control2”, “control3”, “control4”, “control5”.
Naturalmente sia i nomi dei suoni che i nomi dei MovieClip possono essere cambiati, infatti li inserirò in due Array, così che per aggiungere o rimuovere una traccia basterà aggiungere o rimuovere i nomi del MovieClip e dell’elemento audio dai rispettivi Array.
Vai sul fotogramma e inserisci questo script:
var tracce:Array = new Array(“traccia1”, “traccia2”, “traccia3”, “traccia4”, “traccia5”);
var controlli:Array = new Array(“control1”, “control2”, “control3”, “control4”, “control5”);
function assegnaSuono(aChi, quale) {
_root[aChi].mySound = new Sound(_root[aChi]);
_root[aChi].mySound.attachSound(quale);
_root[aChi].mySound.setVolume(0);
_root[aChi].myVolume = 0;
_root[aChi].mySound.start(0, 999999999);
_root[aChi].onPress = function() {
this.myVolume = this.myVolume == 0 ? 100 : 0;
this.mySound.setVolume(this.myVolume);
};
}
for (i=0; i<controlli.length; i++) {
assegnaSuono(controlli[i], tracce[i]);
}
Prova il filmato, non sentirai niente all’inizio, ma cliccando sui vari MovieClip puoi accendere e spegnere ogni singolo suono.
Buon lavoro.

Di: Professore | 26/09/2020 18:29:15


grazie professore, il tuo filmato funziona come avevi detto ma è sorto il problema che mi aspettavo: spesso le traccie non sono a tempo perche posso iniziare in qualsiasi momento!
si potrebbe creare le 5 clip (una delle quali a volume=1 e le altre a volume=0) e successivamente intervenire sui vari volumi?
io non riesco a scrivere lo script ma ho in mente questo procedimento e suppongo che possa funzionare...

Di: Pacio | 26/09/2020 18:29:15