Übergeben von Variablen an SWF-Dateien für Flash Professional

Einführung

Der FlashVars-Parameter des HTML-<OBJECT>-Tags sendet Variablen an die oberste Ebene einer SWF-Datei beim Laden in einem Webbrowser. Mithilfe des <OBJECT>-Tags werden SWF-Dateien in HTML-Seiten eingefügt. Das <EMBED>-Tag kann auch verwendet werden, ist jedoch mittlerweile veraltet.

Informationen zur grundlegenden Verwendung des <OBJECT>-Tags finden Sie unter OBJECT-Tagsyntax.

Hinweis: Für die FlashVars-Funktion ist Flash Player 6 oder höher erforderlich.

FlashVars zum Einbinden von Werten in eine SWF-Datei verwenden

Sie können mithilfe des optionalen Parameters FlashVars Variablen in die Stammebene der SWF-Datei übergeben. Platzieren Sie diesen Parameter innerhalb des <OBJECT>-Tags oder des älteren <EMBED>-Tags.  Alle diese Variablen werden dann in die SWF-Datei übergeben, bevor der erste Rahmen der Datei wiedergegeben wird.

Sie können so viele Variablen, wie Sie möchten, mit beliebigen Variablennamen übergeben.  Alle Browser unterstützen FlashVars-Strings mit einer Länge von bis zu 64 KB (65535 Byte).

Das Format der FlashVars-Eigenschaft ist eine Zeichenkette, die aus einem Satz von Name/Wert-Paaren besteht, die durch das &-Zeichen getrennt sind.

Sie können Sonderzeichen oder nicht druckbare Zeichen einbinden, indem Sie ein %-Zeichen vor den entsprechenden Hexadezimalwert einfügen. Ein einzelnes Leerzeichen kann durch das +-Zeichen dargestellt werden.  Weitere Informationen zur URL-Kodierung von Sonderzeichen finden Sie unter URL-Kodierung (Wikipedia).

Im folgenden Beispiel übergibt der HTML-Code zwei Variablen. Die erste Variable „myVariable“ hat den Wert „Hello World“. Die zweite Variable „mySecondVariable“ hat den Wert „Goodbye“.

Beispiel für OBJECT-Tag

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

 

Beispiel für EMBED-Tag

Mithilfe des <EMBED>-Tags kann eine SWF-Datei auch einer Webseite hinzugefügt werden, aber dieses Tag ist mittlerweile veraltet.

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

Der Browser kodiert die FlashVars-Zeichenkette auf dieselbe Weise wie er die gesamte HTML-Seite kodiert. Internet Explorer bietet unter Windows eine UTF-16-kompatible Kodierung. Andere Browser bieten eine UTF-8-kompatible Kodierung.

Auf die Variablen in ActionScript 3.0-Code in einer SWF-Datei zugreifen

Nach der Übergabe der Variablen von HTML an die SWF-Datei muss die SWF-Datei diese Variablen verwenden.

Verwenden Sie das ActionScript 3.0 LoaderInfo-Objekt, um auf die FlashVars-Variablen zuzugreifen.

Einfaches Beispiel

Im Beispiel unten fragt der Code das LoaderInfo-Objekt ab, um auf die Variable mit dem Namen „myVariable“ zuzugreifen, die im FlashVars-Parameter in die SWF-Datei eingebunden wurde. Anschließend setzt er den Text eines Textfelds auf der Bühne auf den Wert der Zeichenfolge der Variablen.

// 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()

Sie können eine beispielhafte FLA-, eine SWF- und eine HTML-Datei herunterladen, um die Verwendung des Codes oben anzuzeigen.

Erweitertes Beispiel

Der unten aufgeführte Code führt Folgendes aus:

  • Erstellt eine TextField-Instanz auf der Bühne (mit dem Namen tf).
  • Verwendet das LoaderInfo-Objekt, um die Variablen vom FlashVars-Parameter einzubinden.
  • Verwendet eine for...in-Schleife, um alle übergegebenen Variablen zu durchlaufen.
  • Zeigt die Variablennamen und Werte im Textfeld an.
// 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());
}

Auf die Variablen in ActionScript 2.0-Code in einer SWF-Datei zugreifen

In ActionScript 2.0 können Sie direkt auf die FlashVars-Variablen zugreifen, als ob diese in der SWF-Datei selbst deklariert wurden.

In diesem Beispiel wird die Texteigenschaft einer dynamischen Textinstanz mit dem Namen text1 auf den Wert der Variablen myVariable gesetzt. gesetzt. myVariable wird im FlashVars-Parameter deklariert.

// AS2
text1.text = myVariable;

Sie können eine beispielhafte FLA-, eine SWF- und eine HTML-Datei herunterladen, um die Verwendung des AS2-Codes oben anzuzeigen.

Weitere Vorgehensweisen

Variablen können auch in SWF-Dateien eingebunden werden, indem sie an die URL von in OBJECT- und EMBED-Tags festgelegten SWF-Dateien angehängt werden. In dieser Vorgehensweise werden die zusätzlichen an die URL angehängten Informationen als Abfragestring bezeichnet.  Diese Methode hat Einschränkungen, falls Sie die Variablen umgehend benötigen, wenn die SWF-Datei lädt. Bei Verwendung dieser Methode müssen Sie die SWF-Datei herunterladen und ausführen, bevor große Mengen an Daten vom Server angefordert werden können.

Schlüsselwörter: Übergeben, Parameter, Abfragezeichenfolge, Objekt, einbetten; tn_16417

 Adobe

Schneller und einfacher Hilfe erhalten

Neuer Benutzer?