![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Ситуация стандартная: грузим внешний файл (картинку), как после этого узнать, что обращение loader.content не вызовет исключения? Или хотя бы подавить это исключение, чтобы не пугать пользователя (в браузере эта ошибка вываливается в отдельном окне, даже при использовании try...catch)?
Для загруженного swf понятно: contentLoaderInfo.childAllowsParent, а вот как для битмапа не нашёл...
__________________
Верить никому нельзя. Мне - можно. :) |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 70
|
вообще странный вопрос... если про Allow говорить - то речь о секьюрити идет, то бишь о защите от загрузки контента с чужого сайта либо доступа к свойствам и методам, но что имеется в виду под ошибкой доступа к "битмапу"? Если проверка, что загрузилась - так на то события есть соответствующие...
|
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
loader.contentLoaderInfo.childAllowsParent спасло Отца советской демократии.
![]() Со второго раза получилось. Оказывается, есть некоторые тонкости с http-редиректом при загрузке картинок...
__________________
Верить никому нельзя. Мне - можно. :) Последний раз редактировалось Dendroid; 03.09.2006 в 22:34. |
|
|||||
|
Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
|
Не, securityError работает, если ты полез на урл, запрещённый текущей песочницей (Security.sandboxType
). Кстати, как поменять тип песочницы в TestPlayer? В дефолтной Security.sandboxType = "localTrusted" никаких ошибок не возникает, естественно... ![]() Здесь другой тип нарушения секьюрити ("No policy files granted access"). В конце концов, по шагам у меня получилось: 1. Грузим файл разрешений с предполагаемого урла: loadPolicyFile(...) 2. Грузим картинку (если установлено "flash.system.LoaderContext.checkPolicyFile = true;", то картинка не начинает грузиться, пока PolicyFile не будет загружен и проверен; кстати, результат проверки никак не доступен, пока не загружена картинка - это первое неудобство). 3. Если произошёл http-редирект (даже просто в другую директорию того же домена), урл картинки может оказаться не подходящим для уже загруженного PolicyFile (свойсто childAllowsParent не стало true), тогда по событию окончения загрузки получаем свойство .url у файла и пытаемся загрузить PolicyFile с нового домена/директории. 4. Теперь сидим и ждём, когда загрузится новый PolicyFile (свойсто childAllowsParent станет true). То, что нет события на окончание его загрузки - второе неудобство. Но можно, пользуясь LoaderContext.checkPolicyFile, просто снова запустить на перезагрузку картинку (куда она из кэша-то денется? ). А вот если после второй загрузки картинки "childAllowsParent == false", уже можно смело говорить пользователю: "Access denied...." - это и будет корректная обработка ошибки.5. Но зато, если теперь "childAllowsParent == true", можно, наконец, обратиться к loader.content.bitmapData ![]() Первый шаг можно пропускать, если редиректы происходят каждый раз.
__________________
Верить никому нельзя. Мне - можно. :) Последний раз редактировалось Dendroid; 04.09.2006 в 00:10. |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:32. |
|
|
« Предыдущая тема | Следующая тема » |
|
|