Основы использования внешнего API

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

Хотя в некоторых случаях SWF-файл может выполняться самостоятельно (например, если вы используете Adobe® Flash® Professional при создании проектора SWF-файлов), в большинстве ситуаций приложение SWF выполняется как элемент внутри другого приложения. Как правило, контейнер, который включает SWF-файл, является файлом HTML. Несколько менее часто SWF-файл используется для всего пользовательского интерфейса приложения для настольной системы или для ее части.

Так как вы работаете над более сложными приложениями, возможно, потребуется установить связь между SWF-файлом и приложением-контейнером. Например, зачастую на веб-странице текст и другая информация показаны в виде HTML, а SWF-файл включен для показа динамического визуального содержимого (например, диаграммы или видеофайла). В данном случае может быть необходимо сделать так, что если пользователи нажимают кнопку на веб-странице, что-то изменяется в SWF-файле. ActionScript содержит механизм, который называется внешним API и который упрощает этот тип связи между ActionScript в SWF-файле и другим кодом в приложении контейнера.

Важные понятия и термины

Ниже приводится список важных терминов, необходимых при работе.

Приложение контейнера
Приложение, в котором Flash Player выполняет SWF-файл, такое как веб-браузер или HTML-страница, которая включает содержимое Flash Player или приложение AIR, загружающее SWF на страницу.

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

Прокси
Приложение-посредник или код, который вызывает код в одном приложении («внешнем приложении») со стороны другого приложения («вызывающего приложения») и возвращает значения вызывающему приложению. Прокси можно использовать в различных целях.
  • Чтобы упростить процесс выполнения вызовов внешней функции путем преобразования исходных вызовов функции в формат, который понимается внешним приложением.

  • Чтобы обойти ограничения безопасности или другие ограничения, которые не позволяют вызывающему напрямую связываться с внешним приложением.

Сериализация
Преобразование объектов или значений данных в формат, который может использоваться для передачи значений в сообщениях между двумя системами программирования (например, по Интернету или между двумя приложениями, запущенными на одном и том же компьютере).

Работа с примерами

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

Чтобы проверить пример связи между ActionScript и JavaScript, выполните следующие действия.

  1. Создайте новый документ в среде Flash Professional и сохраните его на компьютере.

  2. В основном меню выберите «Файл» > «Параметры публикации».

  3. В диалоговом окне «Параметры публикации» на вкладке «Форматы» убедитесь в том, что установлены флажки Flash и HTML.

  4. Нажмите кнопку «Опубликовать». Это приводит к созданию SWF-файла и HTML-файла в той же папке и с тем же именем, которое использовалось для сохранения документа Чтобы закрыть диалоговое окно «Параметры публикации», нажмите кнопку «OК».

  5. Снимите флажок «HTML». После того, как HTML-страница создана, необходимо изменить ее, чтобы добавить соответствующий код JavaScript. Снятие флажка «HTML» приводит к тому, что после изменения HTML-страницы Flash не станет перезаписывать ваши изменения, показывая новую HTML-страницу при публикации SWF-файла.

  6. Чтобы закрыть диалоговое окно «Параметры публикации», нажмите кнопку «OК».

  7. Откройте в текстовом редакторе или редакторе HTML файл HTML, созданный Flash при публикации SWF-файла. В исходном коде HTML добавьте начальный и завершающий тег script , а затем скопируйте в них код JavaScript из примера кода:

    <script> 
    // add the sample JavaScript code here 
    </script>
  8. Сохраните файл HTML и вернитесь в программу Flash.

  9. Выберите ключевой кадр в Кадре 1 временной шкалы и откройте панель «Действия».

  10. Скопируйте код ActionScript на панель «Сценарий».

  11. Выберите в основном меню «Файл» > «Опубликовать», чтобы обновить SWF-файл, внеся в него изменения.

  12. Откройте с помощью веб-обозревателя HTML-страницу, которую вы отредактировали, для просмотра страницы и проверьте связь между ActionScript и страницей HTML.

Чтобы проверить пример связи между контейнерами ActionScript, выполните следующие действия.

  1. Создайте новый документ в среде Flash Professional и сохраните его на компьютере. Его можно сохранить в той папке, где ваше приложение контейнера обычно ищет SWF-файл.

  2. В основном меню выберите «Файл» > «Параметры публикации».

  3. В диалоговом окне «Параметры публикации» на вкладке «Форматы» убедитесь в том, что установлен только флажок Flash.

  4. В поле «Файл», расположенном возле флажка «Flash», щелкните значок папки, чтобы выбрать папку, в которой следует опубликовать SWF-файл. Выбрав местоположение своего SWF-файла; можно, например, сохранить документ Flash в одной папке, а опубликованный SWF-файл — в другой папке (допустим, в папке, содержащей исходный код приложения контейнера).

  5. Выберите ключевой кадр в Кадре 1 временной шкалы и откройте панель «Действия».

  6. Скопируйте код ActionScript из примера на панель «Сценарий».

  7. Выберите в основном меню «Файл» > «Опубликовать», чтобы заново опубликовать SWF-файл.

  8. Создайте и выполните свое приложение контейнера, чтобы проверить связь между ActionScript и приложением контейнера.

Полный список примеров использования внешнего API-интерфейса для взаимодействия с HTML-страницей см. в следующей теме: Эти примеры содержат полный код, включая ActionScript и код проверки контейнера, который необходимо применять при создании кода с помощью внешнего API. Еще один полноценный случай с применением внешнего API приведен в примере класса ExternalInterface из справочника ActionScript® 3.0 для Adobe® Flash® Professional CS5.