Inledning

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.

Använda FlashVars för att överföra variabler till en SWF-fil

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

Exempel: Object-taggen

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

 

Exempel: Embed-taggen

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

Komma åt variablerna i en SWF-fil med ActionScript 3.0-kod

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.

Ett enkelt exempel

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.

Ett avancerat exempel

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());
}

Komma åt variablerna i en SWF-fil med ActionScript 2.0-kod

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.

Fler tekniker

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.

Nyckelord: överföra; parametrar; frågesträng; object; bädda in; tn_16417

Denna produkt är licensierad enligt en Creative Commons Erkännande-Ickekommersiell-Dela Lika 3.0 Unported-licens  Twitter™- och Facebook-inlägg omfattas inte av villkoren i Creative Commons-licensen.

Juridiska meddelanden   |   Onlinesekretesspolicy