Come trasferire variabili a file SWF per Flash Professional

Introduzione

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.

Utilizzo di FlashVars per il trasferimento di valori a file SWF

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".

Esempio relativo al tag Object

<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>

 

Esempio relativo al tag Embed

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.

Accesso alle variabili nel codice ActionScript 3.0 in un file SWF

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.

Esempio semplice

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.

Esempio avanzato

Nell'esempio di codice riportato di seguito vengono effettuate le seguenti operazioni:

  • Creazione di un'istanza TextField in Stage(denominata tf).
  • Utilizzo dell'oggetto LoaderInfo per includere le variabili del parametro FlashVars.
  • Utilizzo di un loop for...in che viene iterato su ciascuna delle variabili trasferite.
  • Visualizzazione di nomi e valori delle variabili nel campo di testo.
// 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());
}

Accesso alle variabili nel codice ActionScript 2.0 in un file SWF

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.

Tecniche aggiuntive

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

Logo Adobe

Accedi al tuo account