Просмотр полной версии : Вопрос о диспетчеризации событий
mr.TrueMan
11.06.2012, 18:22
Ребят, ситуация заключается вот в чём: у меня происходит загрузка данных ( изображений ) из архива сайта, на загрузчике ( объект класса Loader ) зарегистирован необходимый приемник ( на contentLoaderInfo ) для реагирования на события о возникновение ошибки загрузке IOErrorEvent.IO_ERROR.
Свою логику проверил и пришёл к выводу, что приемник просто напросто не вызывается, следовательно диспетчеризация события не производится. Что ещё интереснее это происходит практически случайно, а в локальной области действия всё прекрасно работает.
И вот вопрос: "Возможно ли, что это проблема flash'а, который не производит диспетчеризацию события, или же мне стоит дальше копать в свой логике?"
У вас не вызывается событие IOErrorEvent.IO_ERROR? Так может это событие просто не происходит?
События щлёт не Loader, а его contentLoaderInfo. К тому же IOErrorEvent.IO_ERROR и Event.COMPLETE - не единственные варианты завершения загрузки. Подпишитесь на все ошибки, это вообще рекомендуется всегда делать.
mr.TrueMan
12.06.2012, 16:58
-De- да я знаю, что "События щлёт не Loader, а его contentLoaderInfo. " На нём приемники и зарегистрированы.
Я покопался и определил, что событие определяется и вызывается его приемник. Проблема заключалась вот в чём: когда я пытался остановить загрузку данных методом close(), по каким-то обстоятельствам неизвестным мне, возникало зависание. Решил данную проблему удалив строку с использованием метода close().
Почему метод close() мог вызвать зависание? И генерирует ли метод close() какие-то ошибки в результате неудачи?
P.S.
В документации от adobe ничего не увидел относительно ошибок вызываемых этим методом.
Simplifier
12.06.2012, 18:37
И генерирует ли метод close() какие-то ошибки в результате неудачи?
Генерирует. Например, если нет открытых потоков и поэтому нечего закрывать. Ошибка синхронная, поэтому перехватывается через try/catch:
try {
loader.close();
} catch (e:Error) {
}
mr.TrueMan
15.06.2012, 17:08
Simplifier, спасибо. Будет время, попробую перехватить. =)
-De- да я знаю, что "События щлёт не Loader, а его contentLoaderInfo. " На нём приемники и зарегистрированы.
Я покопался и определил, что событие определяется и вызывается его приемник. Проблема заключалась вот в чём: когда я пытался остановить загрузку данных методом close(), по каким-то обстоятельствам неизвестным мне, возникало зависание. Решил данную проблему удалив строку с использованием метода close().
Почему метод close() мог вызвать зависание? И генерирует ли метод close() какие-то ошибки в результате неудачи?
P.S.
В документации от adobe ничего не увидел относительно ошибок вызываемых этим методом.
Loader#close на Vista (мой девелоперский комп) точно не работает. Я забил. да-да. трай кэтч и все такое, но не закрывает он сокет, зараза, хоть убей.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.