Хотя в некоторых случаях 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, выполните следующие действия.
-
Создайте новый документ в среде Flash Professional и сохраните его на компьютере.
-
В основном меню выберите «Файл» > «Параметры публикации».
-
В диалоговом окне «Параметры публикации» на вкладке «Форматы» убедитесь в том, что установлены флажки Flash и HTML.
-
Нажмите кнопку «Опубликовать». Это приводит к созданию SWF-файла и HTML-файла в той же папке и с тем же именем, которое использовалось для сохранения документа Чтобы закрыть диалоговое окно «Параметры публикации», нажмите кнопку «OК».
-
Снимите флажок «HTML». После того, как HTML-страница создана, необходимо изменить ее, чтобы добавить соответствующий код JavaScript. Снятие флажка «HTML» приводит к тому, что после изменения HTML-страницы Flash не станет перезаписывать ваши изменения, показывая новую HTML-страницу при публикации SWF-файла.
-
Чтобы закрыть диалоговое окно «Параметры публикации», нажмите кнопку «OК».
-
Откройте в текстовом редакторе или редакторе HTML файл HTML, созданный Flash при публикации SWF-файла. В исходном коде HTML добавьте начальный и завершающий тег
script
, а затем скопируйте в них код JavaScript из примера кода:
<script>
// add the sample JavaScript code here
</script>
-
Сохраните файл HTML и вернитесь в программу Flash.
-
Выберите ключевой кадр в Кадре 1 временной шкалы и откройте панель «Действия».
-
Скопируйте код ActionScript на панель «Сценарий».
-
Выберите в основном меню «Файл» > «Опубликовать», чтобы обновить SWF-файл, внеся в него изменения.
-
Откройте с помощью веб-обозревателя HTML-страницу, которую вы отредактировали, для просмотра страницы и проверьте связь между ActionScript и страницей HTML.
Чтобы проверить пример связи между контейнерами ActionScript, выполните следующие действия.
-
Создайте новый документ в среде Flash Professional и сохраните его на компьютере. Его можно сохранить в той папке, где ваше приложение контейнера обычно ищет SWF-файл.
-
В основном меню выберите «Файл» > «Параметры публикации».
-
В диалоговом окне «Параметры публикации» на вкладке «Форматы» убедитесь в том, что установлен только флажок Flash.
-
В поле «Файл», расположенном возле флажка «Flash», щелкните значок папки, чтобы выбрать папку, в которой следует опубликовать SWF-файл. Выбрав местоположение своего SWF-файла; можно, например, сохранить документ Flash в одной папке, а опубликованный SWF-файл — в другой папке (допустим, в папке, содержащей исходный код приложения контейнера).
-
Выберите ключевой кадр в Кадре 1 временной шкалы и откройте панель «Действия».
-
Скопируйте код ActionScript из примера на панель «Сценарий».
-
Выберите в основном меню «Файл» > «Опубликовать», чтобы заново опубликовать SWF-файл.
-
Создайте и выполните свое приложение контейнера, чтобы проверить связь между ActionScript и приложением контейнера.
Полный список примеров использования внешнего API-интерфейса для взаимодействия с HTML-страницей см. в следующей теме:
Эти примеры содержат полный код, включая ActionScript и код проверки контейнера, который необходимо применять при создании кода с помощью внешнего API. Еще один полноценный случай с применением внешнего API приведен в примере класса ExternalInterface из справочника ActionScript® 3.0 для Adobe® Flash® Professional CS5.
|
|
|