Hoe u variabelen kunt doorgeven aan SWF-bestanden voor Flash Professional

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.

Trefwoorden: doorgeven; parameters; queryreeks; object; insluiten; tn_16417

 Adobe

Krijg sneller en gemakkelijker hulp

Nieuwe gebruiker?