RSS

Tutorial: ExternalInterface – Zusammenspiel von SWF und JavaScript

Manchmal ist es nötig, SWF Dateien mit dem aktuellen Container (meistens eine umschliessende HTML Seite) korrespondieren zu lassen. Ob nun Inhalte in Formularen geändert, Seitenwechsel oder auch das Zusammenspiel mit anderen SWF Dateien geschehen soll, kann dies über JavaScript gelöst werden. Eine Schnittstelle bietet dabei die ExternalInterace Klasse von ActionScript 3.

Früher war diese Funktion unter dem Namen fscommand() bekannt und hat diese ersetzt.

Um von JavaScript auf eine Methode in ActionScript zuzugreifen, muss diese dem Flash Player bekannt gemacht werden. Dieser erfolgt mit der Methode addCallback():

ExternalInterface.addCallback("setTextFromJS", setText);

Dabei wird die (JavaScript)Methode “setTextFromJS” dem Flash Player und somit dem ExternalInterface bekannt gemacht. Die zweite Variable legt die Funktion fest, die in ActionScript aufgerufen werden soll.
Nun kann mit der aktuelle SWF Container in der HTML Seite über dessen Namen angesprochen werde und die Methode aufgerufen werden. Parameterübergabe funktioniert wie gehabt in JavaScript:

function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
} else {
return document[movieName];
}
}
function sendToActionScript(value) {
thisMovie("ExternalInterfaceExample").sendToActionScript(value);
}

Natürlich ist dies auch umgekehrt möglich. Über die Funktion

ExternalInterface.call('setTextFromAS', s);

kann aus ActionScript heraus eine JavaScript Funktion aufgerufen werden mit Parameterübergabe. Soweit ich weiß, kommt immer ein String an. Der Parameter s kann dabei ein Wert sein, der von ActionScript an JavaScript gesendet werden soll.

Hier habe ich ein Beispiel online gestellt. Der übergebene Text aus dem Textfeld wird an die SWF gesendet und anschließend wieder an JavaScript und in ein zweites Textfeld geschrieben.

Beispiel
Download des Beispielcodes

Beitrag verlinken bei: Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • MisterWong
  • Y!GG
  • Webnews
  • Digg
  • del.icio.us
  • StumbleUpon
  • Facebook
  • LinkedIn
  • TwitThis

No related posts.

Ähnliche Artikel bereitgestellt von Yet Another Related Posts Plugin.

 
 
 

Kommentar abgeben: