FlashVars-parametern i HTML-taggen <OBJECT> skickar variabler till SWF-filens toppskikt när den öppnas i en webbläsare. <OBJECT>-taggen används för att lägga till SWF-filer i HTML-sidor. <EMBED>-taggen kan också användas, men den är numera föråldrad.
Det finns grundläggande information om hur <OBJECT>-taggen används i OBJECT-taggens syntax.
Obs! FlashVars-funktionen kräver Flash Player 6 eller en senare version.
Du kan använda en valfri parameter med namnet FlashVars för att överföra variabler till SWF-filens rotnivå. Placera parametern inuti <OBJECT>-taggen eller den äldre <EMBED>-taggen. Variablerna förs då över till SWF-filen innan filens första bildruta spelas upp.
Du kan lägga till hur många variabler som helst med vilka namn du vill. Alla webbläsare stöder FlashVars-strängar på upp till 64 kB (65535 byte).
FlashVars-egenskapens format är en tråd som är en uppsättning par av typen namn=värde, avskilda med ett &-tecken.
Du kan ta med specialtecken eller tecken som inte går att skriva ut genom att använda %-tecknet följt av motsvarande hexadecimalt värde. Tecknet + representerar ett (1) mellanslag. Mer information om URL-kodning av specialtecken finns på URL-kodning (Wikipedia).
Följande exempel på HTML-kod lägger till två variabler. Den första kallas "myVariable" med värdet "Hello World". Den andra kallas "mySecondVariable" med värdet "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>
<EMBED>-taggen är numera föråldrad men den kan också användas för att lägga till en SWF-fil i en webbsida.
<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" />
Webbläsaren kodar FlashVars-strängen på samma sätt som den kodar resten av HTML-sidan. Internet Explorer i Windows använder UTF-16-kodning. Andra webbläsare använder UTF-8-kodning.
När du har överfört variablerna från HTML-koden till din SWF-fil så behöver SWF-filen använda dessa variabler.
Använda ActionScript 3.0 LoaderInfo-objekt för att komma åt FlashVars-variabler.
Koden i exemplet nedan behöver LoaderInfo-objektet för att komma åt den variabel med namnet myVariable som har överförts till SWF-filen med FlashVars-parametern. Den anger sedan texten i ett textfält på scenen till variabelns strängvärde.
// 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()
Du kan hämta exempel på FLA, SWF- och HTML-filer som visar hur koden ovan används.
Koden i exemplet nedan gör följande:
- Den skapar ett TextField på scenen (med namnet tf).
- Den använder LoaderInfo-objektet för att hämta variablerna från FlashVars-parametern.
- Den använder en for..in-slinga som upprepar varje variabel som har överförts.
- Den visar variablernas namn och värden i textfältet.
// 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()); }
Med ActionScript 2.0 kan du komma åt FlashVars-variablerna direkt, som om de hade deklarerats i själva SWF-filen.
Det här exemplet anger textegenskaperna i en dynamisk text med namnet text1 till värdet av variabeln med namnet myVariable. myVariable deklareras i FlashVars-parametern.
// AS2 text1.text = myVariable;
Du kan hämta exempel på FLA, SWF- och HTML-filer som visar hur AS2-koden ovan används.
Det går också att lägga till variabler i SWF-filer genom att bifoga dem till SWF-filernas webbadress (URL), enligt vad som specificeras i OBJECT- och EMBED-taggarna. I den här tekniken kallas den extra information som bifogas webbadressen en frågesträng. Den här metoden innebär begränsningar om du behöver variablerna omedelbart när SWF-filen läses in. Om du använder den här metoden måste du hämta och spela upp SWF-filen innan stora mängder data hämtas från servern.
- Ett exempel på frågesträng-tekniken finns i: Använda FlashVars med ActionScript 3.0 (Adobes bloggar).
- Information om andra attribut som kan användas med OBJECT-taggen finns i Attribut för OBJECT- och EMBED-taggar i Flash.