2009-08-01 8 views
1

Ich muss eine Live-Vorschau in Flash erstellen, die einem Benutzer eine angepasste Version eines Produkts zeigt - zum Beispiel mit eigenem Text auf der Website. Ich benutze Flash normalerweise nicht, aber verstehe ein wenig ActionScript 3.Wie kann ich den Text in einer geladenen SWF-Datei mit Javascript/AS3 aktualisieren?

Ich benutze jQuery, um mit meinem SWF einzubetten und zu kommunizieren. Ich habe einen SWF-Film, an den ich einen Anfangswert über eine Flashvar übergebe und dies zeigt sich mit dem benutzerdefinierten Text in meinem Film. (Ich erstelle das Textfeld im Film mit Actionscript 3)

Wie kann ich dann Javascript verwenden, um später aktualisierte Werte für meine Flashvars an den Film zu senden - zum Beispiel wenn der Kunde den Text in einem Eingabefeld im HTML ändert Seite?

Antwort

2

Sie müssen Ihre eigene Funktion definieren, um das Textfeld zu ändern und es für Ihr Javascript verfügbar machen, indem Sie ExternalInterface verwenden.

Es geht ungefähr so:

class MyClass { 

    static function main() {  
    if (flash.external.ExternalInterface.available) { 
     flash.external.ExternalInterface.addCallback("updateText", updateText); 
    } 

    static function updateText(txt) { 
     // Whatever you want 
    } 
    }  

} 
0

Es besteht die Möglichkeit, ExternalInterface wie das oben Plakat gezeigt hat.

Wenn Ihre Anforderungen ein wenig komplizierter sind, dann können Sie die Adobe Flex Ajax Bridge verwenden. Sie benötigen außerdem das Flex SDK (siehe About the Flex Ajax Bridge). Die Bridge kann Dinge vereinfachen, wenn Sie das meiste SWF-Verhalten von JavaScript steuern möchten. ExternalInterface ist nützlicher für einfache, schnelle, einmalige Funktionsaufrufe.

Verwandte Themen