Anforderungen und Vorteile externer APIs

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Die externe API ist der Teil von ActionScript, der einen Mechanismus für den Datenaustausch zwischen ActionScript und anderem Code bereitstellt, der in einer „externen Anwendung“ ausgeführt wird, die als Container für Flash Player fungiert (gewöhnlich ein Webbrowser oder eine eigenständige Projektoranwendung). In ActionScript 3.0 wird die Funktionalität der externen API durch die ExternalInterface-Klasse bereitgestellt. In den Flash Player-Versionen vor Flash Player 8 wurde die fscommand() -Aktion für den Datenaustausch mit der Containeranwendung verwendet. Die ExternalInterface-Klasse ersetzt fscommand() .

Hinweis: Für den Fall, dass Sie die alte fscommand() -Funktion verwenden müssen – beispielsweise um die Kompatibilität mit älteren Anwendungen zu wahren oder für die Interaktion mit einer SWF-Containeranwendung von Drittanbietern oder mit dem eigenständigen Flash Player – ist diese weiterhin als Funktion auf Paketebene im flash.system-Paket verfügbar.

Die ExternalInterface-Klasse ist ein Subsystem, mit dem Sie unkompliziert aus ActionScript und Flash Player mit JavaScript auf einer HTML-Seite kommunizieren können.

Die ExternalInterface-Klasse steht nur in folgenden Fällen zur Verfügung:

  • In allen unterstützten Versionen von Internet Explorer für Windows (ab Version 5.0)

  • In allen Browsern, die die NPRuntime-Schnittstelle unterstützen, darunter Firefox 1.0 und höher, Mozilla 1.7.5 und höher, Netscape 8.0 und höher und Safari 1.3 und höher

  • In einer AIR-Anwendung, wenn die SWF-Datei in eine HTML-Seite eingebettet ist, die vom HTMLLoader-Steuerelement angezeigt wird.

In allen anderen Fällen (z. B. beim Ausführen in einem eigenständigen Player) gibt die ExternalInterface.available -Eigenschaft den Wert false zurück.

Mit ActionScript können Sie JavaScript-Funktionen in einer HTML-Seite aufrufen. Im Vergleich zu fscommand() bietet die externe API die folgende verbesserte Funktionalität:

  • Sie können jede gewünschte JavaScript-Funktion verwenden, nicht nur die Funktionen, die mit der fscommand -Funktion einsetzbar sind.

  • Sie können eine beliebige Anzahl von Argumenten mit frei wählbaren Namen übergeben. Sie sind nicht darauf beschränkt, einen Befehl und einen einzigen Argumentstring zu übergeben. Dadurch bietet die externe API viel mehr Flexibilität als fscommand() .

  • Sie können unterschiedliche Datentypen übergeben (z. B. Boolean, Number und String); es gibt keine Beschränkung auf Parameter vom Typ String.

  • Sie können den Wert eines Aufrufs empfangen. Dieser Wert wird sofort (als Rückgabewert des Aufrufs) an ActionScript zurückgegeben.

Wichtig: Wenn der Name der Flash Player-Instanz in einer HTML-Seite (das id -Attribut des object -Tags ) einen Bindestrich ( - ) oder andere Zeichen enthält, die in JavaScript als Operatoren definiert sind (zum Beispiel + , * , / , \ , . usw.), sind ExternalInterface-Aufrufe aus ActionScript beim Anzeigen der Containerwebseite in Internet Explorer unwirksam. Darüber hinaus funktionieren ExternalInterface-Aufrufe aus ActionScript nicht, wenn die die Flash Player-Instanz definierenden HTML-Tags ( object und embed ) in einem HTML- form -Tag verschachtelt sind.