Руководство по actionscript. часть 3, стр. 110
Var urlloader:URLLoader = new URLLoader( ); // Регистрируем приемник события
urlloader. addEventListener(SecurityErrorEvent. SECURITY_ERROR,
securityErrorListener); // Вызываем нарушение безопасности
urlloader. load(new URLRequest(«http://www. example. com/index. xml»));
_Jf_
tf^ щ На момент издания этой книги на сайте example. com не было файла политики безопасно-УрРД сти, размещенного в местоположении, используемом по умолчанию, поэтому предыдущий ^ЙР2-1 код приводил к диспетчеризации события 5есигИуЕггогЕуеп^5ЕСиМТУ_ЁК1ЮК.
Приемник для предыдущего события SecurityErrorEvent. SECURITY_ERROR, код которого приведен ниже, добавляет сообщение о причине возникновения ошибки в объект TextField, отображаемый на экране, — output:
private function securityErrorListener (e:SecurityErrorEvent):void { output. appendText(«Loading problem!\n»): output. appendText(e. text):
}
Чтобы определить, может ли эта операция генерировать исключение SecurityError или приводить к диспетчеризации события SecurityErrorEvent. SECURI TY_ERROR, обратитесь к соответствующему разделу справочника по языку ActionScript корпорации Adobe. Описание каждой операции содержит список возможных исключений SecurityError под заголовком Throws (Генерирует) и список возможных событий SecurityErrorEvent. SECURITY_ERROR под заголовком Events (События).
В большинстве случаев класс, который определяет операцию, генерирующую событие SecurityErrorEvent. SECURITY_ERROR, одновременно является классом, в котором должны регистрироваться приемники событий. Например, класс URLLoader определяет операцию load ( ), которая может приводить к диспетчеризации событий SecurityErrorEvent. SECURI TY_ERROR. Приемники событий, обрабатывающие события SecurityErrorEvent. SECURITY_ERROR, вызванные методом экземпляра load ( ) класса URLLoader, регистрируются в том экземпляре класса URLLoader, над которым вызывается метод load ( ). Это демонстрирует следующий код:
// При использовании класса URLLoader регистрируйтесь на события // в экземпляре класса URLLoader. var urlloader:URLLoader = new URLLoader( ): url 1 oader. addEventLi stener(SecurityErrorEvent. SECURITY_ERROR,
securityErrorListener);
Однако в некоторых случаях класс, определяющий операцию, которая генерирует событие SecurityErrorEvent. SECURITY_ERROR, не является одновременно классом, в котором должны регистрироваться приемники событий. Например, класс Loader определяет операцию load ( ), которая может приводить к диспетчеризации событий SecurityErrorEvent. SECURITY_ERROR. Но приемники событий, обрабатывающие данные события, должны регистрироваться в экземпляре класса Loaderlnf о, ассоциированном с операцией load ( ), а не в экземпляре класса Loader, над которым вызывается метод load ( ). Как и раньше, это демонстрирует следующий код:
// При использовании класса Loader регистрируйтесь на события // в экземпляре класса Loaderlnfo. var loader:Loader = new Loader( );
1 oader. contentLoaderInfо. addEventLi stener(Securi tyErrorEvent. SECURITY_ERROR,
securityErrorListener);
Чтобы определить класс, в котором должны регистрироваться приемники событий SecurityErrorEvent. SECURITY_ERROR для данной операции, обратитесь к справочнику по языку ActionScript корпорации Adobe. В частности, эту информа-
цию можно найти в описании класса, определяющего операцию, которая приводит к диспетчеризации события SecurityErrorEvent. SECURITY_ERROR.