w w w . w e b d i v i s i o n . c o m
Homepage
portfoliocontact


torna all'indice dei tutorials
   
utilizzare un file .swf esterno per la musica (bottone on/off facile)
   
 
TUTORIAL: UTILIZZARE UN FILE .SWF ESTERNO PER LA MUSICA
 

La via migliore è sempre quella più semplice, un pò di filosofia prima di partire non fa mai male e nel nostro caso diventa illuminante.
Poniamo un caso comune: abbiamo un interfaccia flash con musiche diversa (o musica alternata al silenzio) in diversi momenti/scene. Poniamo che sia l'utente con le sue scelte ed i suoi clicks a condizionare la scena corrente ed il punto della timeline (linea del tempo) dove saltare. In parole semplici: poniamoci in un ambiente multimediale e non lineare (come quello delle intro in flash che seguono la timeline in maniera regolare senza salti).
E chiaro? No?
Allora provo a spiegarmi in maniera più semplice: c'è un menu interamente fatto in flash, a seconda della scelta dell'utente si vuole avere una musica diversa, senza però dover saltare in punti diversi della timeline o in altre scene; diciamo che viogliamo restare statici nello stesso keyframe (o fotogramma chiave nella lingua di Dante).
In questa situazione è chiaramente impossibile appiccicare la nostra bella onda sonora ad un layer (strato) del filmato, a meno che non si setti il suono come EVENT, perdendo però così la possibilità di gestirlo, cioè di fermarlo e farlo ripartire a seconda di quello che l'utente seleziona.
Dunque la prima considerazione da fare è che per avere alta interattività con l'utente è necessario prendere le distanze dalla timeline, saltare da una scena all'altra va bene solamente se i cambi sono repentini e senza continuità.
Nel nostro caso vogliamo una navigazione fluida e veloce, un classico interfaccia flash che sia sufficientemente chiaro, senza fare impazzire chi ci deve avere a che fare.
Prendere le distanze dalla timeline significa avvicinarsi al mondo degli/delle ActionScript (maschile? femminile?), quanto di più vicino alla programmazione vi sia in flash.
La versione più recente di flash ha incremetato notevolmente la potenzialità del linguaggio in essa incluso, facilitando la trattazione di contenuti multimediali ed interattivi, per esempio il suono, ma la action che ci interessa più da vicino è presente fin da versioni precedenti del software: Load/Unload Movie.

Load/Unload Movie permette di inserire o di eliminare filmati all'interno di altri filmati, un pò come le scatole cinesi. Questa potentissima action (da ora in poi la definirò solamente così per semplicità) permette di piazzare o di togliere un file .swf esterno in un qualsiasi punto spazio/temporale del nostro filmato, in relazione ad un qualsiasi evento che sia provocato dall'utente o meno.
Nello specifico i nostri files .swf esterni conterranno solamente musica (esattamente come quelli scaricabili da questo sito nella sezione freeloops), e saranno caricati tramite il click del mouse dell'utente.

Un po di concretezza: basta teoria cominciamo a fare qualcosa di pratico.
1. disegnate due cerchi sullo stage nel primo frame del primo e del secondo strato (layer) e convertiteli in simboli/bottoni (controllate che non siano semplici movieclip, ma bottoni). Create poi un layer vuoto e chiamatelo 'target'.

L'immagine vi mostra più o meno come dovrebbe comparire il vostro stage, frecce rosse e scritte in sovraimpressione a parte. Tutto bene? Se la vostra risposta è si continuate, se avete già mal di testa prima di continuare pigliatevi un' aspirina e domandatevi perchè state leggendo questo tutorial :)

2. create un movie clip vuoto e chiamatelo 'target', piazzatelo nel layer con lo stesso nome, ma FUORI DALLO STAGE. Date un nome all'istanza del movieclip target che avete sullo schermo: chiamatela 'target1'.

3. adesso un pò di azione: quello che ci serve innanzitutto è la musica, quindi scaricatevi un paio di files .swf da questo sito e salvateli (dopo averli scompattati) nella stessa directory dove sta il vostro movie. Per questo esempio ne ho presi due a caso: '404.swf' e 'font_attack_swf.swf'.
Inserite nel pannello 'object actions' del bottone n. 1 il seguente script:

on (release)
{
unloadMovieNum (1);
loadMovie ("404.swf", "target1");
}
Inserite nel pannello 'object actions' del bottone n. 1 il seguente script:

on (release)
{
unloadMovieNum (1);
loadMovie ("font_attack_swf.swf", "target1");
}

4. premete F12 e provate a schiacciare i due bottoni: et voilà, se avete fatto tutto bene questi dovrebbero richiamare i due files .swf esterni, contenenti musiche diverse.

Faccio ora due precisazioni che dovrebbero chiarire il funzionamento del meccanismo:
a) il movieclip vuoto 'target1' è in sostanza un puntatore (il secondo paramentro della funzione loadmovie) e rappresenta il punto dello schermo in cui fisicamente risiederà il file .swf esterno che si caricherà tramite loadmovie
b) l'azione unloadmovie ha come parametro un numero che corrisponde al livello di movie da eliminare. Il movie padre (quello contenente i due bottoni) ha come valore 0 perciò il file .swf che verrà da esso caricato per primo avrà valore 1.

Naturalmente questa è una semplice dimostrazione, e sta alla creatività di ognuno farlo fruttare nel modo più adeguato, fate un pò di prove e vedrete quante possibilità può offrire appoggiarsi a movie esterni (non solo per la musica).

Autore: GIULIO GATTO
(marzo 2001)