De externe API vormt het deel van ActionScript dat communicatie mogelijk maakt tussen ActionScript en code en wordt uitgevoerd binnen een ‘externe toepassing’ die dient als container voor Flash Player (normaal gesproken een webbrowser of zelfstandige projectortoepassing). In ActionScript 3.0 wordt de functionaliteit van de externe API verzorgd door de klasse ExternalInterface. In eerdere versies dan Flash Player 8 werd de handeling
fscommand()
gebruikt om communicatie met de containertoepassing tot stand te brengen. De ExternalInterface-klasse is een vervanging voor
fscommand()
.
Opmerking:
Als u bent aangewezen op de oude functie
fscommand()
, bijvoorbeeld voor compatibiliteit met oudere toepassingen of om te communiceren met een containertoepassing voor een SWF-bestand van derden of de zelfstandige Flash Player, kunt u deze nog steeds gebruiken als functie binnen het pakket flash.system.
De klasse ExternalInterface is een subsysteem waarmee u gemakkelijk met JavaScript op een HTML-pagina kunt communiceren vanuit ActionScript en Flash Player.
De klasse ExternalInterface is alleen beschikbaar onder de volgende omstandigheden:
-
In alle ondersteunde versies van Internet Explorer voor Windows (5.0 en hoger).
-
In elke browser met ondersteuning voor de NPRuntime-interface. Dit zijn momenteel Firefox 1.0 en hoger, Mozilla 1.7.5 en hoger, Netscape 8.0 en hoger en Safari 1.3 en hoger.
-
In een AIR-toepassing wanneer het SWF-bestand is ingesloten op een HTML-pagina die wordt weergegeven door het besturingselement HTMLLoader.
In alle andere situaties (wanneer deze bijvoorbeeld in een zelfstandige speler wordt uitgevoerd) retourneert de eigenschap
ExternalInterface.available
false
.
Vanuit ActionScript kunt u een JavaScript-functie aanroepen in de HTML-pagina. De externe API biedt de volgende, verbeterde functionaliteit ten opzichte van
fscommand()
:
-
U kunt elke JavaScript-functie gebruiken, niet alleen de functies die kunnen worden gebruikt met de functie
fscommand
.
-
U kunt elk aantal argumenten doorgeven met elke naam; u bent niet beperkt tot het doorgeven van een opdracht en een argument met een enkele tekenreeks. Hierdoor is de externe API veel flexibeler dan
fscommand()
.
-
U kunt verschillende gegevenstypen (zoals Bolean, Number en String) passeren; u bent niet beperkt tot String-parameters.
-
U kunt de waarde van een aanroep ontvangen; deze waarde wordt direct geretourneerd aan ActionScript (als de geretourneerde waarde van uw aanroep).
Belangrijk:
Als de naam die is opgegeven voor de Flash Player-instantie in een HTML-pagina (de tag van het
object
id
-kenmerk) een koppelteken bevat (
-
) of andere tekens die worden gedefinieerd als operatoren in JavaScript (zoals
+
,
*
,
/
,
\
,
.
enz.) ExternalInterface-oproepen vanaf ActionScript werken niet als de containerinternetpagina wordt weergegeven in Internet Explorer. Als de HTML-tags die de Flash Player-instantie definiëren (de
object
- en
embed
-tags) zijn genest in een HTML
form
-tag, werken ExternalInterface-oproepen vanaf ActionScript niet.