Руководство по actionscript. часть 3, стр. 109

Стоит отметить, что, когда некоторый файл а. swf применяет импортирующую загрузку для загрузки другого файла b. swf, приложение Flash Player считает, будто файл b. swf был сначала скопирован, а затем загружен непосредственно с сайта файла а. swf. Таким образом, к файлу b. swf применяются привилегии безопасности файла а. swf, а исходные привилегии безопасности файла b. swf, связанные с его реальным источником, аннулируются. Например, файл b. swf теряет возможность обращаться к ресурсам из своего реального источника с помощью относительных URL-адресов. Следовательно, при использовании импортирующей загрузки всегда проверяйте функционирование загруженного SWF-файла.

Импортирующая загрузка не требуется в следующих ситуациях, поскольку SWF-файлу родителя, по сути, разрешается импортировать классы SWF-файла ребенка в свой домен приложения:

? локальный SWF-файл импортирует классы из другого локального SWF-файла с таким же типом безопасности песочницы;

? удаленный SWF-файл импортирует классы из другого удаленного SWF-файла, находящегося в том же регионе.

Механизмы обращения к классам в загруженных SWF-файлах рассматриваются в гл. 28 и 31.

Обработка нарушений безопасности

В этой главе мы рассмотрели несколько правил безопасности, которые влияют на способность SWF-файла выполнять различные операции языка ActionScript. Когда операция не может быть выполнена из-за нарушения правила безопасности, среда выполнения либо генерирует исключение SecurityError, либо осуществляет диспетчеризацию события SecurityErrorEvent. SECURITY_ERROR.

Исключение SecurityError генерируется в том случае, когда можно сразу определить, что операция нарушает правило безопасности. Например, если локальный SWF-файл с поддержкой файловой системы пытается открыть сокетное соединение, среда выполнения ActionScript немедленно выявляет факт нарушения безопасности и генерирует исключение SecurityError.

В отличие от этого, диспетчеризация события SecurityErrorEvent. SECURITY_ERROR происходит в том случае, когда после ожидания завершения некоторой асинхронной задачи среда Flash определяет, что было нарушено правило безопасности. Например, когда локальный SWF-файл с поддержкой сети использует метод экземпляра load ( ) класса URLLoader для загрузки файла из удаленной области действия,

среда Flash должна асинхронно проверить наличие подходящего файла политики безопасности, разрешающего операцию загрузки. Если операция проверки файла политики безопасности завершится неудачей, среда Flash выполнит диспетчеризацию события SecurityErrorEvent. SECURITY_ERROR (заметьте — не исключение SecurityError).

В отладочной версии приложения Flash Player выявить необработанные исключения SecurityError и события SecurityErrorEvent. SECURITY_ERRORочень просто. Всякий раз, когда возникает данное исключение или событие, приложение Flash Player выводит окно, в котором описывается возникшая проблема. Отладочная версия приложения Flash Player абсолютно отличается от рабочей версии, в которой никакая информация о необработанных исключениях SecurityError и событиях SecurityErrorEvent. SECURITY_ERROR не отображается, поэтому выявить проблему может оказаться чрезвычайно сложно.

| Чтобы убедиться, что никакие нарушения безопасности не остались незамеченными, м?, 4 п всегда проверяйте код в отладочной версии приложения Flash Player. _ flft_

Для обработки ошибок безопасности используется инструкция try/catch/ finally. Для обработки событий SecurityErrorEvent. SECURITY_ERROR применяются приемники событий. Например, следующий код генерирует исключение SecurityError, пытаясь установить сокетное подключение к порту выше 65 535. При возникновении ошибки код добавляет сообщение о причине ее возникновения в объект TextField, отображаемый на экране.

var socket:Socket = new Socket( ): try {

socket-.connectCexample. com», 70000): } catch (e:SecurityError) { output. appendText(«Connection problem!\n»); output. appendText(e. message):

}

Подобным образом, пытаясь загрузить файл данных с сайта, не имеющего файла политики безопасности, локальный SWF-файл с поддержкой сети, содержащий следующий код, вызовет диспетчеризацию события SecurityErrorEvent. SECURI TY_ERROR. Перед тем как попытаться осуществить операцию загрузки, код регистрирует приемник события, который выполняется при диспетчеризации события SecurityErrorEvent. SECURITY_ERROR.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 074
  • 11.03.2011">Руководство по actionscript. часть 3, стр. 150
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.111
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 081
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 102
  • 19.03.2011">Руководство по actionscript. часть 2, стр. 088
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.71
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 003
  • 03.03.2011">Руководство по actionscript. часть 5, стр. 077
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 101
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.30
  • 12.03.2011">Руководство по actionscript. часть 3, стр. 116
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 055
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 134
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 092
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...