Wymagania i zalety zewnętrznego interfejsu APIFlash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje Zewnętrzny interfejs API jest częścią języka ActionScript, która udostępnia mechanizm komunikacji między ActionScript i kodem działającym w „aplikacji zewnętrznej”, która działa jako kontener dla programu Flash Player (jest to najczęściej przeglądarka sieci Web lub autonomiczna aplikacja projektora). W języku ActionScript 3.0 funkcję zewnętrznego interfejsu API udostępnia klasa ExternalInterface. W wersjach programu Flash Player poprzedzających wersję Flash Player 8 operacja fscommand() służyła do nawiązania komunikacji z aplikacją kontenera. Klasa ExternalInterface zastępuje metodę fscommand(). Uwaga: Jeśli wymagane jest użycie starej funkcji fscommand() — na przykład w celu zachowania zgodności ze starszymi aplikacjami, w celu oddziaływania na aplikację kontenera SWF innej firmy albo samodzielną instancję programu Flash Player — jest ona dostępna jako funkcja na poziomie pakietu w pakiecie flash.system.
Klasa ExternalInterface jest podsystemem, który ułatwia komunikację ActionScript i Flash Player z JavaScript na stronie HTML lub z dowolną aplikacją pulpitu, która zawiera instancję Flash Player. Klasa ExternalInterface jest dostępna tylko w następujących warunkach:
We wszystkich innych sytuacjach (np. uruchamianie w autonomicznym odtwarzaczu), właściwość ExternalInterface.available zwraca wartość false. Z kodu ActionScript można wywołać funkcję JavaScript na stronie HTML page. W porównaniu z operacją fscommand() zewnętrzny interfejs API oferuje następujące udoskonalone funkcje:
Ważne: Jeśli nazwa określona w instancji Flash Player na stronie HTML (atrybut id znacznika object) zawiera znak łącznika (-) lub inne znaki, które są zdefiniowane jako operatory w języku JavaScript (np. +, *, /, \, . itd.), wywołania klasy ExternalInterface z kodu ActionScript nie działają, gdy zawierająca strona WWW jest wyświetlana w programie Internet Explorer. Ponadto jeśli znaczniki HTML definiujące instancję odtwarzacza Flash Player (znaczniki object i embed) są zagnieżdżone w znaczniku HTML form, wywołania klasy ExternalInterface z kodu ActionScript także nie będą działać.
|
|