Come già detto, l'azione FS Command
permette di inviare messaggi al programma host che ospita il filmato Flash. Inviando informazioni al browser web è necessario creare degli script capaci di "catturare" questi messaggi ed interpretarli.
In questa lezione farò un semplice esempio su come riuscire ad aprire una
nuova finestra del browser da un bottone Flash. Non spiegherò però
il funzionamento del JavaScript in quanto non è attinente a questo corso.
1a Fase - Configurazione dei tag <OBJECT> e <EMBED>
Per prima cosa bisogna preparare il codice HTML della pagina web che ospita
il filmato Flash. Bisogna apportare qualche piccola modica nei tag
<OBJECT> e <EMBED> che assegnano i parametri al filmato Flash.
Prima di tutto dobbiamo rendere il filmato "catturabile" dagli
script. Per fare questo assegniamo un nome al filmato Flash; con questo nome
poi, gli script potranno identificare le informazioni che invieremo al browser.
Aggiungiamo ai due tag <OBJECT> e <EMBED> le voci ID e NAME:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#
version=5,0,0,0" WIDTH="100" HEIGHT="100" ID="ApriFin">
<PARAM NAME="MOVIE" VALUE="prova.swf">
<PARAM NAME="PLAY" VALUE="TRUE">
<PARAM NAME="LOOP" VALUE="FALSE">
<PARAM NAME="QUALITY" VALUE="HIGH">
<PARAM NAME="SCALE" VALUE="showall">
<EMBED NAME="ApriFin"
swLiveConnect="true"
SRC="prova.swf" SCALE="showall" PLAY="true" LOOP="false"QUALITY="high" WIDTH="100"
HEIGHT="100" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/shockwave/download/
index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
</OBJECT>
(il codice mostrato è solo di esempio per comprendere al meglio il
posizionamento dei parametri ID e NAME)
In questo esempio sono stati assegnati ai parametri ID e NAME, il valore ApriFin. È con questo valore che gli script saranno in grado di intercettare le informazioni ed interpretarle.
Il parametro swLiveConnect viene inserito esclusivamente nel tag <EMBED>
e permette di caricare Java alla visualizzazione della pagina. In questo modo il browser non deve rallentare l'esecuzione degli script caricando Java al momento dell'apertura finestra.
2a Fase - Assegnazione dell'action nel bottone
A questo punto, inseriamo nel filmato Flash, la clip bottone che
permetterà, al clic, di aprire una nuova finestra del browser.
Assegniamo questa action:
on
(release) {
fscommand
("nuova-finestra", "http://www.flash5.it");
}
dove nuova-finestra è il nome che abbiamo assegnato al comando (possiamo assegnare qualsiasi nome, basta che il valore negli script sia lo stesso), e http://www.flash5.it è l'argomento (la nuova pagina web da aprire).
3a Fase - Creazione degli script
Possiamo quindi procedere alla creazione degli script che permetteranno di
aprire una nuova finestra del browser.
Ecco il codice JavaScript che permette di eseguire questa operazione:
<SCRIPT LANGUAGE="JavaScript">
<!--
function ApriFin_DoFSCommand(command,
args)
{
if ( command == "nuova-finestra"
)
{
window.open(args,'','scrollbars=yes,width=650,height=400');
}
}
//-->
</SCRIPT>
La funzione Java DoFSCommand richiama il filmato Flash ApriFin e recupera le variabili command e args (che nel nostro caso hanno valore "nuova-finestra" e "http://flash-mx.html.it").
Attenzione!
Se avete intenzione di modificare i valori dei parametri ID
e NAME abbiate cura di sostituire con lo stesso valore, il nome della funzione DoFSCommand.
Facciamo un esempio: se al posto di ApriFin avessimo scelto di
assegnare il nome Pippo, la funzione JavaScript sarebbe questa: Pippo_DoFSCommand(..).
Come si può notare dalla funzione, essa può accettare più scelte inviate
da Flash ed eseguire operazioni diverse. Infatti, in questo esempio, viene
eseguita l'operazione di apertura finestra se il command è uguale a nuova-finestra. Quindi possiamo inserire più scelte nella stessa funzione ed assegnare ad ognuna di esse un'operazione.
Arrivati a questo punto, con Netscape possiamo già vedere i risultati della
lezione, mentre con Explorer dobbiamo inserire un altro pezzo di codice:
<SCRIPT LANGUAGE="VBScript">
<!--
// Per IE.
Sub ApriFin_FSCommand(ByVal command, ByVal args)
call ApriFin_DoFSCommand(command, args)
end sub
//-->
</SCRIPT>
essendo il VBScript il linguaggio di default.
Questa breve funzione richiama il JavaScript creato precedentemente e gli invia
le variabili ricevute dal filmato Flash.
Questi due script vanno inseriti all'interno dei tag <HEAD>
e </HEAD>
.
Approfondimento
Purtroppo il comando FS Command non è compatibile con tutte le
versioni dei browser, così come richiamare JavaScript direttamente dall'azione Get Url. Ecco una tabella che riassume la compatibilità o meno dei diversi browser:
|
Script per il rilevamento |
Load Movie |
"JavaScript:" nel |
FSCommand, comunicazione tra |
Netscape 3.0 e superiori |
||||
Mac 68k |
No |
No |
No |
No |
Mac PowerPC |
Si |
Si |
Si |
Si |
Windows 3.1 |
Si |
No |
No |
No |
Windows 95/98/NT/2000 |
Si |
Si |
Si |
Si |
Internet Explorer 3.0 e |
||||
Versione 3 |
No |
No |
Si |
No |
Versione 4.5 |
No |
Si |
No |
No |
Versione 5.0 |
Si |
Si |
Si |
No |
Versione 3 |
No |
No |
No |
No |
Versione 3 |
Si |
Si |
No |
Si |
Versione 4 |
Si |
Si |
Si |
Si |
Versione 5 |
Si |
Si |
Si |
Si |
Versione 6 |
Si |
Si |
Si |
Si |
Versione 5 |
Si |
Si |
Si |
Si |