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

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX 2024

Adobe MAX
Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online

Adobe MAX

Die Konferenz für Kreative

14. bis 16. Oktober in Miami Beach und online