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.
- Ein Beispiel für die Abfragstringmethode finden Sie unter Using FlashVars with ActionScript 3.0 (Adobe Blogs).
- Informationen zu den anderen Attributen, die Sie mit dem OBJECT-Tag verwenden können, finden Sie unter Attribute der OBJECT- und EMBED-Tags für Flash.
Schlüsselwörter: Übergeben, Parameter, Abfragezeichenfolge, Objekt, einbetten; tn_16417