Flash: ExternalInterface

/ Autor: Alexander, 15 Aug 2008

ExternalInterface bietet dem Entwickler von Flash eine Schnittstelle zwischen ActionScript und dem Container der den Flash-Player enthält. Im besonderen können hiermit JavaScript-Funktionen in HTML-Seiten aufgerufen werden.

ExternlInterface bietet nicht nur einen Aufruf von Funktionen außerhalb von Flash, sondern hiermit können auch Rückgabewerte zurück an Flash geliefert werden. Auch der Weg vom Flash-Player-Container zu ActionScript ist möglich. Das heißt, bestimmte Funktionen können in ActionScript zum Beispiel mittels JavaScript aufgerufen wegen mit Parameter-Übergabe. Die zwei hierfür verwendeten Methoden sind die addCallback- und call-Methoden. Die addCallBack-Methode ermöglicht den Aufruf von AS-Funktionen von außen, call den Weg anders herum.

Die Parameter von ExternalInterface.addCallBack sind erstens der Name mit dem die Funktion von außen aufgerufen werden kann, zweitens das Objekt auf das sich die Methode bezieht und drittens die Methode die zur weiteren Verarbeitung aufgerufen wird. Die Verknüpfung erfolgt wie das Beispiel von Adobe zeigt:

<script>
function callExternalInterface() {
thisMovie("externalInterfaceExample").goHome();
}
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
</script>

Hier müssen das id-Attribut (Object-Tag) und das name-Attribut (Embed-Tag) den Wert ”externalInterfaceExample” haben.

Mit ExternalInterface.call können wie gesagt Funktionen aufgerufen werden. Call hat zwei Parameter. Zum Einen dem Funktionsnamen und zum Anderen einen optionalen Parameter. Auch kann mit der call-Methode ein Rückgabewert abgefangen und weiterverarbeitet werden.

Diese beiden Methoden bieten ein die Möglichkeit einer einfachen Implementierung einer Schnittstelle in Flash, die sich vorwiegend für die Kommunikation mit JavaScript, aber auch anderen Sprachen wie C, anbietet. Die Anwendungsgebiete hierfür sind sehr zahlreich und reichen vom einfachen Auslesen der Browserinnengröße bis zur Verwendung einer Flash-Navigation in Web 2.0 Seiten.

Leave a Reply