![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2008
Сообщений: 6
|
Есть простой код:
package {
import flash.display.Sprite;
import flash.events.SecurityErrorEvent;
public class XMLSocketConnector extends Sprite{
private var _socket:XMLSocket;
public function XMLSocketConnector() {
_socket = new XMLSocket();
_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
_socket.connect("somehost.com", 1461);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
//Здесь код обработки события
}
}
}
Вопрос #1: почему не диспатчится событие SecurityErrorEvent.SECURITY_ERROR а вместо вылазиет эта ошибка? То есть код, который написан в хэндлере не выполняется. Ведь в доке у метода XMLSocket.connect() написано: Цитата:
Цитата:
package {
import flash.display.Sprite;
import flash.events.SecurityErrorEvent;
public class XMLSocketConnector extends Sprite{
private var _socket:XMLSocket;
public function XMLSocketConnector() {
_socket = new XMLSocket();
_socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
try {
_socket.connect("somehost.com", 1461);
} catch (error:SecurityError) {
//Код обработки ошибки
}
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
//Здесь код обработки события
}
}
}
|
|
|||||
|
strange mood
|
1. Там же написано: Throws SecurityError - не dispatches а throws, значит и перехватывать надо через try..catch
2. Насколько я понял, SecurityError и SecurityErrorEvent могут возникать в разных случаях, и один можно отследить сразу (поэтому бросается исключение), а второй - только после того как начнётся процесс коннекта (поэтому нужно отслеживать событие) Вообще какие проблемы, делаем try..catch и addEventListener и из них обоих вызываем общий обработчик ошибки ![]()
__________________
тонкий тролль, осеянный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|