Обзор среды HTML

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

Adobe AIR обеспечивает полноценную среду JavaScript наподобие среды обозревателя, включающую средства визуализации HTML, объектную модель документа и интерпретатор JavaScript. Среда JavaScript представлена классом AIR HTMLLoader. В окнах HTML в объект HTMLLoader включено все HTML-содержимое, а он, в свою очередь, содержится в объекте NativeWindow. В SWF-содержимом класс HTMLLoader, являющийся расширением класса Sprite, может быть добавлен в список отображения рабочей области, как любой другой экранный объект. Свойства класса Adobe® ActionScript® 3.0 описываются в разделе « Написание сценария для HTML-контейнера AIR и справочнике ActionScript 3.0 для платформы Adobe Flash Platform . В инфраструктуре Flex класс AIR HTMLLoader заключен в компонент mx:HTML. Компонент mx:HTML является расширением класса UIComponent, чтобы он мог использоваться с другими контейнерами Flex. В остальном среда JavaScript внутри компонента mx:HTML точно такая же.

О среде разработки сценариев JavaScript и ее связи с хостом AIR

На схеме ниже показано, как связаны среда JavaScript и рабочая среда AIR. Хотя показано только одно исходное окно, в приложении AIR может содержаться несколько. (А в одном окне может содержаться несколько объектов HTMLLoader.)

Полноразмерное изображение
В среде JavaScript есть собственные объекты Document и Window. Код JavaScript может общаться со средой выполнения AIR с помощью свойств runtime, nativeWindow и htmlLoader. Код ActionScript может взаимодействовать со средой JavaScript с помощью свойства window объекта HTMLLoader, являющегося ссылкой на объект Window языка JavaScript. Кроме того, и объекты ActionScript, и объекты JavaScript могут прослушивать события, отправляемые объектами AIR и JavaScript.

Свойство runtime предоставляет доступ к классам API-интерфейса AIR для создания новых объектов AIR и членов классов доступа (также называемых статическими). Для доступа к API-интерфейсу AIR необходимо добавить в свойство runtime имя класса (вместе с именем пакета). Например, для создания объекта File будет использоваться следующая инструкция:

var file = new window.runtime.filesystem.File();
Примечание. AIR SDK содержит файл JavaScript AIRAliases.js , в котором задаются удобные псевдонимы для большинства классов AIR. При импорте этого файла вместо window.runtime.package.Class можно использовать более короткую форму air.Class. Например, можно создать объект File с помощью метода new air.File() .

Объект NativeWindow предоставляет свойства для управления окном рабочего стола. С HTML-страницы с помощью свойства window.nativeWindow можно получать доступ к объекту-контейнеру NativeWindow.

Объект HTMLLoader предлагает свойства, методы и события для управления загрузкой и визуализацией содержимого. С HTML-страницы с помощью свойства window.htmlLoader можно получать доступ к родительскому объекту HTMLLoader.

Важная информация. Свойства htmlLoader , nativeWindow и runtime могут быть только у страниц, установленных как часть приложения, и только когда они загружаются в качестве документов верхнего уровня. Эти свойства не добавляются, когда документ загружается в обычный или встроенный фрейм. (Дочерний документ также имеет доступ к этим свойствам в родительском документе, пока оба находятся в одной и той же изолированной программной среде.) Например, документ, загруженный во фрейм, может получать доступ к свойству runtime своего родителя через parent.runtime ).

О безопасности

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

Страницу приложения можно преобразовать в изолированную программную среду вне приложения путем загрузки страницы во фрейм или встроенный фрейм и задания для фрейма атрибутов AIR sandboxRoot и documentRoot . Если атрибуту sandboxRoot в качестве значения задать реальный удаленный домен, то содержимое в изолированной программной среде сможет выполнять междоменный сценарий с содержимым этого домена. Такое преобразование может пригодиться при загрузке и создании сценариев для удаленного содержимого, например в мэшап -приложениях.

Есть и другой способ перекрестного выполнения сценариев, и единственный способ дать содержимому вне приложения доступ к API-интерфейсу приложения AIR — это создать мост изолированной программной среды . Мост от родительского к дочернему элементу позволяет содержимому фрейма, встроенного фрейма или окна получать доступ к методам и свойствам, заданным в изолированной программной среде приложения. И наоборот, мост от дочернего элемента к родительскому позволяет приложению получать доступ к методам и свойствам, заданным в изолированной программной среде дочернего элемента. Мосты изолированных программных сред устанавливаются путем задания свойств parentSandboxBridge и childSandboxBridge объекта window. Дополнительные сведения см. в разделах « Безопасность HTML в Adobe AIR » и « Элементы frame и iframe в HTML ».

О подключаемых модулях и вложенных объектах

Среда AIR поддерживает подключаемый модуль Adobe® Acrobat®. Для отображения PDF-содержимого необходимо установить Acrobat или Adobe® Reader® версии 8.1 (или более поздней). Объект HTMLLoader предлагает свойство для проверки возможности отображения PDF-содержимого. Содержимое SWF-файла также может отображаться в среде HTML, но эта возможность является встроенной и не предполагает использования внешних подключаемых модулей.

Остальные подключаемые модули WebKit не поддерживаются средой AIR.