Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   запамятовал, error 2048 (http://www.flasher.ru/forum/showthread.php?t=150295)

Anddrey 09.02.2011 14:40

запамятовал, error 2048
 
День добрый!
подскажите,где и на какой экземпляр надо вешать обработчик ошибки 2048.
Это про нарушение изолированной среды.Дело в том что в коде лоадеров
много и на какой из них ставить отлов события SECURITY_ERROR не пойму.
Похоже данное событие возникает глобально но как его отловить не понимаю
Кто сталкивался,подскажите плз

cleptoman 09.02.2011 15:08

каждый лоадерИнфо лоадера подписывать

Anddrey 09.02.2011 15:11

Тут еще такая загвоздка,дело в том что есть еще кросдомаин а он тянется плеером по умолчанию
Не факт что эта ошибка не возникает
Это тяжко, а глобально никак нельзя?

cleptoman 09.02.2011 15:14

можно, но к одному глобальному лоадеру )
если у вас такой есть.

Anddrey 09.02.2011 15:17

лоадеров больше чем 1.Хорошо бы иметь решение с глобальным обработчиком но тогда
возникает вопрос с передачей управления коду за "ошибочным".Это тоже непонятно как юзать
Все равно Error #2044: Необработанный securityError:. text=Error #2048: возникает на уровне плеера и
"погасить" или перехватить его пока непонятно как

cleptoman 09.02.2011 15:28

обработчик у вас может быть один на все лоадеры, но подписывать придется все равно каждый лоадерИнфо.
Код AS3:

function _onSecurityErrorEvent(e:SecurityErrorEvent):void{
var loaderInfo:LoaderInfo = e.target as LoaderInfo;
loaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR,_onSecurityErrorEvent);
trace("error from " + loaderInfo.loader);
}
 
var i:uint;
var loader:Loader;
for(i = 0; i < 100; i++){
loader = new Loader();
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,_onSecurityErrorEvent);
loader.load(new URLRequest("someURL"));
}


Anddrey 09.02.2011 15:31

да, видимо прийдется так делать, но остается еще трабл с глобальной загрузкой плеером кросдомена
Этот то где перехватывать?

cleptoman 09.02.2011 15:39

можете с каждым реквестом проверять
см. flash.system.LoaderContext;

Anddrey 09.02.2011 15:49

Да, перехватить получается, но "погасить" окно с ошибкой в браузере нет.
Пробую на 10.2, может для 10-ки есть настройки которыми через код управлять можно?

mikhailk 09.02.2011 16:14

Что-то мне кажется, не с того конца проблему решаете.

Решение заключается в том, чтобы не пользоваться разбросанными по коду приложения лоадерами. Грузить вообще нужно все однотипные объекты через один предназначенный для того лоадер, напр. PNGLoader, XMLLoader и т.д. Внутри этого лоадера аккуратно обработать все ошибки, а наружу уже выдавать два события - успех и не успех загрузки. Ну и в отдельных случаях еще что там потребуется.


Часовой пояс GMT +4, время: 15:47.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.