Krav och fördelar för det externa API:t

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Det externa API:t är den del av ActionScript som innehåller mekanismen för kommunikation mellan ActionScript och kod som körs i ett externt program som fungerar som behållare för Flash Player (oftast en webbläsare eller ett fristående projektorprogram). I ActionScript 3.0 finns det externa API:ts funktionalitet i klassen ExternalInterface. I Flash Player-versioner före Flash Player 8 användes åtgärden fscommand() för att utföra kommunikation med behållarprogrammet. Klassen ExternalInterface ersätter fscommand() .

Obs! Om du behöver använda den gamla funktionen fscommand() , till exempel för att bibehålla kompatibiliteten med äldre program eller för att interagera med ett SWF-behållarprogram från tredje part eller den fristående Flash Player, finns den fortfarande som en funktion på paketnivå i paketet flash.system.

Klassen ExternalInterface är ett undersystem som gör att du enkelt kan kommunicera från ActionScript och Flash Player till JavaScript på en HTML-sida.

Klassen ExternalInterface är bara tillgänglig under följande omständigheter:

  • I alla användbara versioner av Internet Explorer för Windows (5.0 och senare)

  • I valfri webbläsare som stöder NPRuntime-gränssnittet, d.v.s. Firefox 1.0 och senare, Mozilla 1.7.5 och senare, Netscape 8.0 och senare samt Safari 1.3 och senare.

  • I ett AIR-program när SWF-filen är inbäddad i en HTML-sida som visas av HTMLLoader-kontrollen.

I alla andra lägen (till exempel när programmet körs i en fristående spelare) returnerar egenskapen ExternalInterface.available false .

Från ActionScript kan du anropa en JavaScript-funktion på HTML-sidan. Externt API erbjuder följande förbättrade funktioner jämfört med fscommand() :

  • Du kan använda alla JavaScript-funktioner, inte bara de funktioner som du kan använda med fscommand() .

  • Du kan överföra valfritt antal argument, med valfria namn. Du begränsas inte till att överföra ett kommando och ett argument med en enda sträng. Det ger externt API mycket större flexibilitet än fscommand() .

  • Du kan skicka olika datatyper (till exempel Boolean, Number och String). Du begränsas inte till String-parametrar.

  • Du kan ta emot värdet för ett anrop och detta värde returneras omedelbart till ActionScript (som returvärde för anropet du gör).

Viktigt! Om det namn som ges Flash Player-instansen på en HTML-sida ( id -attributet för taggen object ) innehåller ett bindestreck ( - ) eller andra tecken som definieras som operatorer i JavaScript (till exempel + , * , / , \ , . ) fungerar ExternalInterface-anrop från ActionScript inte när behållarwebbsidan visas i Internet Explorer. Dessutom fungerar ExternalInterface-anrop från ActionScript inte heller om de HTML-taggar som definierar Flash Player-instansen (taggarna object och embed ) är kapslade i en HTML form -tagg.