Il parametro FlashVars del tag HTML <OBJECT> invia variabili al livello superiore di un file SWF quando viene caricato in un browser Web. Il tag <OBJECT> viene utilizzato per aggiungere file SWF a pagine HTML. È possibile utilizzare anche il tag <EMBED>, ma è meno recente e ormai obsoleto.
Per informazioni sui principi di base per l'utilizzo del tag <OBJECT>, consultate la sezione relativa alla sintassi dei tag OBJECT.
Nota: per la funzionalità FlashVars è necessario Flash Player 6 o superiore.
Per trasferire variabili al livello principale del file SWF, potete utilizzare un parametro opzionale denominato "FlashVars". Posizionate tale parametro all'interno del tag <OBJECT> o del tag meno recente <EMBED>.Tutte le variabili verranno quindi trasferite al file SWF prima della riproduzione del primo fotogramma del file.
Potete trasferire il numero di variabili desiderato utilizzando nomi a piacere.Tutti i browser supportano stringhe FlashVars con lunghezza massima di 64 KB (65535 byte).
Il formato della proprietà FlashVars è una stringa composta da un set di coppie nome=valore separate dal carattere "&".
Potete includere caratteri speciali o non stampabili utilizzando il carattere "%" seguito dal valore esadecimale a due cifre appropriato. Un singolo spazio vuoto può essere rappresentato dal segno "+".Per ulteriori informazioni sui caratteri speciali di codifica URL, consultate la sezione relativa alla codifica URL (Wikipedia).
Il seguente esempio di codice HTML consente il trasferimento di due variabili. La prima è denominata "myVariable" e presenta il valore "Hello World". La seconda è denominata "mySecondVariable" e presenta il valore "Goodbye".
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle"> <param name="movie" value="myFlashMovie.swf" /> <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="myFlashMovie.swf" width="550" height="400"> <param name="movie" value="myFlashMovie.swf" /> <param name=FlashVars value="myVariable=Hello%20World&mySecondVariable=Goodbye" /> <!--<![endif]--> <a href="http://www.adobe.com/go/getflash"> <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object>
Il tag <EMBED> può anche essere utilizzato per aggiungere un file SWF a una pagina Web, ma si tratta di un tag meno recente e ormai obsoleto.
<embed src="myFlashMovie.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="myFlashMovie" FlashVars="myVariable=Hello%20World&mySecondVariable=Goodbye" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflash" />
Il browser codifica la stringa FlashVars con la stessa modalità con cui codifica il resto della pagina HTML. Internet Explorer in Windows fornisce una codifica conforme a UTF-16. Altri browser forniscono una codifica conforme a UTF-8.
Una volta trasferite le variabili al file SWF da HTML, il file SWF richiede l'utilizzo di tali variabili.
Per accedere alle variabili FlashVars, utilizzate l'oggettoLoaderInfo di ActionScript 3.0.
Nell'esempio di codice riportato di seguito viene richiesto all'oggetto LoaderInfo di accedere alla variabile denominata myVariable trasferita al file SWF nel parametro FlashVars. Quindi viene impostato il testo di un campo di testo in Stage sul valore della stringa della variabile.
// by querying the LoaderInfo object, set the value of paramObj to the // to the value of the variable named myVariable passed from FlashVArs in the HTML var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters.myVariable; // set the text of the text instance named text1. Use the toString() method // to convert the value from an object to a string so it can be used in the text field text1.text = paramObj.toString()
Potete scaricare un file FLA, SWF e HTML di esempio che mostra l'utilizzo del codice riportato sopra.
Nell'esempio di codice riportato di seguito vengono effettuate le seguenti operazioni:
// AS3 var tf:TextField = new TextField(); // create a TextField names tf tf.autoSize = TextFieldAutoSize.LEFT; tf.border = true; addChild(tf); // add the TextField to the DisplayList so that it appears on the Stage tf.appendText("params:" + "\n"); try { var keyStr:String; var valueStr:String; var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; //set the paramObj variable to the parameters property of the LoaderInfo object for (keyStr in paramObj) { valueStr = String(paramObj[keyStr]); tf.appendText("\t" + keyStr + ":\t" + valueStr + "\n"); // add each variable name and value to the TextField named tf } } catch (error:Error) { tf.appendText(error.toString()); }
In ActionScript 2.0, potete accedere direttamente alle variabili FlashVars come se fossero state dichiarate nel file SWF stesso.
Nell'esempio, la proprietà testo di un'istanza di testo dinamica denominata text1 viene impostata sul valore della variabile denominata myVariable. myVariable viene dichiarata nel parametro FlashVars.
// AS2 text1.text = myVariable;
Potete scaricare un file FLA, SWF e HTML di esempio che mostra l'utilizzo del codice AS2 riportato sopra.
Le variabili possono inoltre essere trasferite a file SWF aggiungendole all'URL di file SWF specificati nei tag OBJECT e EMBED. In questa tecnica le ulteriori informazioni aggiunte all'URL sono denominate stringa query.Questo metodo presenta alcune limitazioni se le variabili sono necessarie immediatamente durante il caricamento del file SWF. Quando utilizzate questo metodo, è necessario scaricare e riprodurre il file SWF prima di poter richiedere elevate quantità di dati dal server.
Parole chiave: trasferimento; parametri; stringa query; oggetto; embed; tn_16417
Accedi al tuo account