Главная / Action Script 3
Пакетflash.system
Классpublic class LoaderContext
НаследованиеLoaderContext Inheritance Object
Подклассы JPEGLoaderContext

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Класс LoaderContext передает параметры для загрузки SWF-файлов и другого мультимедийного содержимого с помощью класса Loader. Класс LoaderContext используется в качестве параметра context в методах load() и loadBytes() класса Loader.

Если SWF-файлы загружаются с помощью метода Loader.load(), необходимо принять два решения: в какой домен защиты должен быть помещен загружаемый SWF-файл, а также в какой домен приложения в этом домене защиты? Дополнительные сведения об этом см. в информации по свойствам applicationDomain и securityDomain.

Если загружается SWF-файл с помощью метода Loader.loadBytes(), также необходимо выбрать домен приложения как и при использовании метода Loader.load(). Но нет необходимости указывать домен защиты, поскольку Loader.loadBytes() всегда помещает загруженный SWF-файл в предназначенный для него домен защиты.

Если вместо SWF-файлов загружаются изображения (JPEG, GIF или PNG), то не требуется указывать ни домен защиты, ни домен безопасности, поскольку эти понятия имеют смысл только применительно к SWF-файлам. Необходимо принять всего одно решение: требуется ли программный доступ к растровому представлению загруженного изображения? Если да, см. свойство checkPolicyFile.

См. также

flash.display.Loader.load()
flash.display.Loader.loadBytes()
flash.system.ApplicationDomain
flash.system.LoaderContext.applicationDomain
flash.system.LoaderContext.checkPolicyFile
flash.system.LoaderContext.securityDomain
flash.system.SecurityDomain
Динамическая загрузка содержимого для показа
Указание контекста загрузки


Общедоступные свойства
 СвойствоОпределено
  applicationDomain : ApplicationDomain = null
Задает домен приложения для применения с методом Loader.load() или Loader.loadBytes().
LoaderContext
  checkPolicyFile : Boolean = false
Указывает, должен ли проигрыватель Flash Player пытаться загрузить файл политики для URL с сервера загружаемого объекта перед началом загрузки самого объекта.
LoaderContext
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  securityDomain : SecurityDomain = null
Задает домен защиты для операции Loader.load().
LoaderContext
Общедоступные методы
 МетодОпределено
  
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Создает новый объект LoaderContext с заданными параметрами.
LoaderContext
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
applicationDomainсвойство
public var applicationDomain:ApplicationDomain = null

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Указывает домен приложения для использования в методе Loader.load() или Loader.loadBytes(). Используйте это свойство только при загрузке SWF-файлов, записанных на ActionScript 3.0 (но не изображений и не SWF-файлов, записанных на ActionScript 1.0 или ActionScript 2.0).

Каждый домен защиты содержит один или несколько доменов приложений, представленных объектами ApplicationDomain. Домены приложений создаются не в целях защиты; они предназначены для совместного использования объектов программного кода ActionScript. Если загрузка SWF-файла выполняется из другого домена, и его разрешено размещать в отдельном домене защиты, то управлять выбором домена приложений для размещения загружаемого SWF-файла нельзя; и даже если указать какой-либо домен приложений, это будет игнорироваться. Однако, если выполняется загрузка SWF-файла в собственный домен защиты (либо потому, что SWF-файл получен из собственного домена, либо потому, что в него выполняется импорт), то можно управлять выбором домена приложений для загружаемого SWF-файла.

В LoaderContext.applicationDomain можно указывать домен приложения только из собственного домена защиты. Попытка указать домен приложения из какого-либо другого домена защиты приводит к исключению SecurityError.

Существует четыре возможных варианта для выбора свойства ApplicationDomain.

Когда загрузка завершается, каждой из сторон (загружающей и загружаемой) может потребоваться выполнить поиск собственного ApplicationDomain или ApplicationDomain другой стороны, чтобы вызвать ApplicationDomain.getDefinition(). Каждая из сторон может извлечь ссылку на собственный домен приложения, используя ApplicationDomain.currentDomain. Загружающий SWF-файл может извлекать ссылку на домен приложения загружаемого SWF-файла с помощью Loader.contentLoaderInfo.applicationDomain. Если для загруженного SWF-файла известен способ его загрузки, можно определить путь к объекту ApplicationDomain загружающего SWF-файла. Например, если дочерний объект был загружен принятым по умолчанию способом, он может найти домен приложения, загружающего SWF-файла, используя ApplicationDomain.currentDomain.parentDomain.

Дополнительные сведения см. в разделе "Класс ApplicationDomain" главы "Системная среда клиента" в книге Программирование на ActionScript 3.0.

См. также

checkPolicyFileсвойство 
public var checkPolicyFile:Boolean = false

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Указывает, должен ли проигрыватель Flash Player пытаться загрузить файл политики для URL с сервера загружаемого объекта перед началом загрузки самого объекта. Этот флаг применим к методу Loader.load(), но не работает для методаLoader.loadBytes().

Установите для этого флага значение true, если изображение (JPEG, GIF или PNG) загружается извне домена вызывающего SWF-файла и предполагается доступ к содержимому этого изображения из ActionScript. В число примеров обращения к содержимому изображений входят обращение к свойству Loader.content для получения объекта Bitmap, а также вызов метода BitmapData.draw() для получения копии растрового представления загруженного изображения. Если попытаться выполнить одну из этих операций, не указав checkPolicyFile во время загрузки, можно получить исключение SecurityError, поскольку необходимый файл политики еще не был загружен.

При вызове метода Loader.load() с установленным для LoaderContext.checkPolicyFile значением true, проигрыватель Flash Player не начнет загрузку указанного в URLRequest.url объекта до тех пор, пока успешно не загрузит соответствующий файл политики для URL или не обнаружит отсутствие такого файла. Проигрыватель Flash Player в первую очередь учитывает файлы политик, которые уже загружены, затем пытается загрузить любые незавершенные загрузки файлов политик, указанных при вызовах метода Security.loadPolicyFile(), затем пытается загрузить файл политики из местоположения по умолчанию, соответствующему URLRequest.url (это файл /crossdomain.xml на том же сервере, что и URLRequest.url). Во всех случаях для проигрывателя Flash Player необходимо, чтобы данный файл политики существовал на своем сервере, чтобы он обеспечивал доступ к объекту, адресуемому URLRequest.url благодаря правильному расположению этого файла политики, а также, чтобы он разрешал доступ к домену вызывающего SWF-файла с помощью одного или нескольких тегов <allow-access-from>.

Если для checkPolicyFile установлено значение true, проигрыватель Flash Player ожидает завершения загрузки файла политики, чтобы начать основную загрузку, указанную в методе Loader.load(). Поэтому, пока необходимый файл политики существует, как только будет получено любое из событий ProgressEvent.PROGRESS или Event.COMPLETE для свойства contentLoaderInfo объекта Loader, загрузка файла политики завершается и можно безопасно начинать выполнение операций, требующих этот файл политики.

Если для checkPolicyFile установлено значение true, а соответствующий файл политики не найден, сообщение об ошибке не будет отправляться до тех пор, пока не будет предпринята попытка выполнить операцию, создающую исключение SecurityError. Однако как только объект LoaderInfo передаст событие ProgressEvent.PROGRESS или Event.COMPLETE, можно убедиться, найден ли соответствующий файл политики, проверив значение свойства LoaderInfo.childAllowsParent.

Если необходим доступ к загружаемому изображению на уровне растрового представления, не следует устанавливать для свойства checkPolicyFile значение true. Проверка файла политики в этом случае бесполезна, поскольку это может задержать запуск загрузки, а также нерационально израсходовать дополнительные ресурсы полосы пропускания.

Также постарайтесь избегать установки для checkPolicyFile значения true, если для загрузки SWF-файла используется метод Loader.load(). Причина этого в том, что разрешения на взаимные обращения между SWF-файлами не контролируются файлами политик, а только с помощью метода Security.allowDomain(), поэтому вызов checkPolicyFile никак не влияет на загрузку SWF-файла. Проверка файла политики в этом случае бесполезна, поскольку это может задержать загрузку SWF-файла, а также нерационально израсходовать дополнительные ресурсы полосы пропускания. (Проигрыватель Flash Player не может определить будет ли основная загрузка выполняться для SWF-файла или изображения, поскольку загрузка файла политики произошла перед основной загрузкой.)

Будьте осторожны с checkPolicyFile, если выполняется загрузка объекта из URL, который может использовать HTTP-перенаправления на стороне сервера. Проигрыватель Flash Player всегда пытается извлекать файлы политик, соответствующие исходному URL, указанному в URLRequest.url. Если окончательный объект передается с другого URL-адреса из-за HTTP-перенаправлений, то изначально загруженные файлы политик могут быть не применимы к окончательному URL-адресу объекта, который и следует учитывать при принятии мер безопасности. В случае возникновения подобной ситуации можно проверить значение LoaderInfo.url после получения события ProgressEvent.PROGRESS или Event.COMPLETE, в котором сообщается окончательный URL-адрес объекта. Затем вызовите метод Security.loadPolicyFile() с файлом политики на основе URL-адресов, где учитывается окончательный URL-адрес объекта. Затем опрашивайте значение LoaderInfo.childAllowsParent до тех пор, пока оно не изменится наtrue.

См. также

securityDomainсвойство 
public var securityDomain:SecurityDomain = null

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Указывает домен защиты для использования в операции Loader.load(). Используйте это свойство только при загрузке SWF-файлов (но не изображений).

Выбор домена безопасности имеет смысл только в том случае, если загружается SWF-файл, который мог быть получен из другого домена (другой сервер), отличающегося от загружающего SWF-файла. Если SWF-файл загружается из собственного домена, он всегда помещается в собственный домен защиты. Но если SWF-файл загружается из другого домена, есть два варианта действий. Можно разрешить загружаемому SWF-файлу быть помещенным в "обычный" домен защиты, который отличается от домена защиты загружающего SWF-файла; это вариант по умолчанию. Другим вариантом является указание того, что загружаемый SWF-файл требуется поместить в тот же домен защиты, что и загружающий SWF-файл, установив для myLoaderContext.securityDomain значение равное SecurityDomain.currentDomain. Это называется загрузка импортом, что с точки зрения обеспечения безопасности, эквивалентно копированию загружаемого SWF-файла на собственный сервер и загрузки его оттуда. Чтобы загрузка импортом завершилась успешно, загруженный SWF-файл должен иметь файл политики, определяющий в качестве доверенного домен загружающего SWF-файла.

Указывать собственный домен защиты можно только в LoaderContext.securityDomain. Попытка указать какой-либо другой домен защиты приводит к исключению SecurityError.

Дополнительные сведения см. в главе "Безопасность" в книге Программирование на ActionScript 3.0.

См. также

Сведения о конструкторе
LoaderContext()Конструктор
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)

Язык версии : ActionScript 3.0
Версии среды выполнения:  1.0 9

Создает новый объект LoaderContext с заданными параметрами. Подробные сведения об этих параметрах см. в описаниях свойств этого класса.

Параметры
checkPolicyFile:Boolean (default = false) — Указывает, должен ли проигрыватель Flash Player проверять существование файла политики для URL перед загрузкой объекта.
 
applicationDomain:ApplicationDomain (default = null) — Указывает, какой объект ApplicationDomain следует использовать для объекта Loader.
 
securityDomain:SecurityDomain (default = null) — Указывает, какой объект SecurityDomain следует использовать для объекта Loader.

См. также