Использование внешнего API

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Внешний API-интерфейс ActionScript 3.0 (flash.external.ExternalInterface) позволяет ActionScript и приложению контейнера, в котором запущен проигрыватель Adobe Flash Player, просто обмениваться данными. Существует ряд ситуаций, в которых может потребоваться использование внешнего API. Например, это может происходить при создании взаимодействия между документом SWF и JavaScript на странице HTML или при создании приложения для настольной системы, где для показа SWF-файла используется проигрыватель Flash Player.

Внешний API-интерфейс можно использовать для взаимодействия с приложением контейнера, передачи данных между ActionScript и JavaScript на странице HTML, а также установки связи и обмена данными между ActionScript и настольным приложением.

Некоторые общие задачи внешнего API-интерфейса включают:
  • получение информации о приложении контейнера;

  • использование ActionScript для вызова кода в приложении контейнера, включая веб-страницу или приложение для настольной системы;

  • вызов кода ActionScript из кода в приложении контейнера;

  • создание прокси-сервера, упрощающего вызов кода ActionScript из приложения контейнера

Примечание. В этом описании внешнего интерфейса охватывается только связь между кодом ActionScript в SWF-файле и приложением контейнера, которое содержит ссылку на проигрыватель Flash Player или экземпляр, в который загружен SWF-файл. Любое другое использование Flash Player в приложении находится вне области действия этой документации. Flash Player разработан для использования в качестве подключаемого модуля веб-обозревателя или проектора (автономное приложение). Другие сценарии применения могут иметь ограниченную поддержку.

Использование внешнего API в среде AIR

Поскольку в приложении AIR отсутствует внешний контейнер, как правило, этот внешний интерфейс не применяется и не требуется. Когда приложение AIR загружает SWF-файл напрямую, код приложения может напрямую обращаться к коду ActionScript в SWF-файле (в соответствии с ограничениями изолированной программной среды).

Однако, когда приложение AIR загружает SWF-файл с использованием страницы HTML в объект HTMLLoader (или компонент HTML в среде Flex), объект HTMLLoader служит внешним контейнером. Поэтому можно использовать внешний интерфейс для связи кода ActionScript в загруженном SWF-файле с кодом JavaScript на странице HTML, загруженной в объект HTMLLoader.