Inleiding
De FlashVars-parameter van de HTML-tag <OBJECT> stuurt variabelen naar het hoogste niveau van een SWF-bestand wanneer het wordt geladen in een webbrowser. De tag <OBJECT> wordt gebruikt om SWF-bestanden aan HTML-pagina's toe te voegen. De tag <EMBED> kan ook worden gebruikt, maar deze is nu verouderd.
Zie Syntaxis van de tag <OBJECT> voor informatie over het gebruik van deze tag.
Opmerking: voor de FlashVars-functie is Flash Player 6 of later vereist.
FlashVars gebruiken om waarden door te geven aan een SWF-bestand
U kunt een optionele parameter, “FlashVars” genaamd, gebruiken om variabelen door te geven naar het hoofdniveau van het SWF-bestand. Plaats deze parameter in de tag <OBJECT> of de oudere tag <EMBED>. Al deze variabelen worden vervolgens doorgegeven aan het SWF-bestand voordat het eerste frame van het bestand wordt afgespeeld.
U kunt zoveel variabelen doorgeven als u wilt met elke gewenste variabelenaam. Alle browsers ondersteunen FlashVars-tekenreeksen met een lengte tot 64 KB (65535 bytes).
De indeling van de FlashVars-eigenschap is een tekenreeks die bestaat uit een set name=value-paren gescheiden door het teken &.
U kunt speciale of niet-afdrukbare tekens opnemen door het teken % te gebruiken, gevolgd door de toepasselijke hexadecimale waarde van twee cijfers. Eén spatie kan worden weergegeven door het plusteken (+).Zie URL Encoding (Wikipedia) voor meer informatie over URL-codering van speciale tekens.
In het volgende voorbeeld van HTML-code worden twee variabelen doorgegeven. De eerste heet 'myVariable' en heeft de waarde 'Hello World'. De tweede heet 'mySecondVariable' en heeft de waarde 'Goodbye'.
Voorbeeld van 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>
Voorbeeld van tag Embed
De tag <EMBED> kan ook worden gebruikt om een SWF-bestand aan een webpagina toe te voegen, maar deze tag is nu verouderd.
<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" />
De browser codeert de FlashVars-tekenreeks op dezelfde manier als de rest van de HTML-pagina wordt gecodeerd. Internet Explorer in Windows biedt codering die compatibel is met UTF-16. Andere browsers bieden codering die compatibel is met UTF-8.
Toegang tot de variabelen in ActionScript 3.0-code in een SWF-bestand
Nadat u variabelen van de HTML aan uw SWF-bestand hebt doorgegeven, is het gebruik van die variabelen vereist voor het SWF-bestand.
Gebruik het ActionScript 3.0-object LoaderInfo voor toegang tot de FlashVars-variabelen.
Eenvoudig voorbeeld
In het onderstaande codevoorbeeld worden query's uitgevoerd voor het object LoaderInfo om toegang te krijgen tot de variabele myVariable die is doorgegeven aan het SWF-bestand in de FlashVars-parameter. Vervolgens wordt hiermee de tekst van een tekstveld in Stage op de tekenreekswaarde van de variabele ingesteld.
// 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()
U kunt een voorbeeld van een FLA, SWF-bestand en HTML-bestand downloaden waarin de bovenstaande code wordt gebruikt.
Geavanceerd voorbeeld
Het onderstaande codevoorbeeld doet het volgende:
- Maakt een exemplaar van TextField in de Stage (tf genaamd).
- Gebruikt het object LoaderInfo om de variabelen van de FlashVars-parameter te verkrijgen.
- Gebruikt een for..in-lus die op alle doorgegeven variabelen moet worden uitgevoerd.
- Geeft de namen en waarden van de variabelen in het tekstveld weer.
// 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()); }
Toegang tot de variabelen in ActionScript 2.0-code in een SWF-bestand
In ActionScript 2.0 hebt u rechtstreeks toegang tot de FlashVars-variabelen, alsof ze in het SWF-bestand zelf zijn gedeclareerd.
In dit voorbeeld wordt de teksteigenschap van een dynamisch tekstexemplaar text1 genaamd, ingesteld op de waarde van de variabele myVariable.myVariable wordt gedeclareerd in de FlashVars-parameter.
// AS2 text1.text = myVariable;
U kunt een voorbeeld van een FLA, SWF-bestand en HTML-bestand downloaden waarin de bovenstaande AS2-code wordt gebruikt.
Andere methoden
Variabelen kunnen ook worden doorgegeven aan SWF-bestanden door ze toe te voegen aan de URL van SWF-bestanden die is opgegeven in OBJECT- en EMBED-tags. Bij deze methode wordt de extra informatie die aan de URL wordt toegevoegd, een queryreeks genoemd. Deze methode heeft beperkingen als u de variabelen onmiddellijk nodig hebt wanneer het SWF-bestand wordt geladen. Wanneer u deze methode gebruikt, moet het SWF-bestand gedownload en afgespeeld worden voordat grote hoeveelheden gegevens bij de server kunnen worden aangevraagd.
- Voor een voorbeeld van de queryreeks raadpleegt u: FlashVars gebruiken met ActionScript 3.0 (Adobe-blogs).
- Voor informatie over de andere attributen die u met de OBJECT-tag kunt gebruiken, raadpleegt u Flash-attributen OBJECT- en EMBED-tag.
Trefwoorden: doorgeven; parameters; queryreeks; object; insluiten; tn_16417