Просмотр полной версии : Загрузка изображений со сторонних сайтов.
Сделал сайт, на котором применил flex (http://chfmm.ru/2) Если выбрать сидения, то отобразится список сидений. Если нажать на определенное сидение(сидение оринон 1), то отобразится информация по нету+увеличиное изображений.
Там где список сидений, превьюшки отображаются нормально.
Там где информация о конкретном седении, изображение НЕ показывается. Пишет:
"Нарушение изолированной среды: Loader.content<путь к swf> не может осуществить доступ к http://s005.***********/.../asdfsdf.jpg. Не предоставлен доступ к файлам политики."
код изображения(которое не отображается):
<mx:Image source="http://s005.***********/.../asdfsdf.jpg" id="imgItem" width="289" left="10" top="10" bottom="40"/>
Почему в превью изображение отображается, а в информации(это-же изображение, только растянутое), не отображается?
Eric Gurt
16.10.2010, 18:28
по сути не должно было работать ни в одном случае, ведь в файле http://s005.***********/crossdomain.xml не разрешено давать доступ флэшкам с других сайтов. да и самого crossdomain.xml там нет. Почему бы не хранить все изображения у себя на сайте?
http://***********/crossdomain.xml там ведь есть
mikhailk
17.10.2010, 13:28
надо грузить изображения с контекстом.
http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/system/LoaderContext.html
Security.allowDomain("*");
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
context.securityDomain = SecurityDomain.currentDomain;
context.checkPolicyFile = true;
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest(fileName);
loader = new Loader();
loader.load(request, context);
f.g.programmer
17.10.2010, 13:52
Если в crossdomain.xml всё есть, для картинки (JPEG, GIF или PNG) достаточно указать только checkPolicyFile
var context:LoaderContext = new LoaderContext(true);
таким образом мы разрешаем доступ к контенту загруженной картинки,
По-видимому операция растягивания невозможна, без доступа к контенту, поэтому в предпросмотре отображается, а в информации нет.
mikhailk
17.10.2010, 15:14
ну да, в данном частном случае достаточно добавить контекст прямо в метод load:
loader.load(request, new LoaderContext(true));
f.g.programmer
17.10.2010, 15:46
У GLeBaTi это будет свойство тега mx:Image loaderContext="{new LoaderContext(true)}"
Security.allowDomain("*");
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
context.securityDomain = SecurityDomain.currentDomain;
context.checkPolicyFile = true;
context.applicationDomain = ApplicationDomain.currentDomain;
var request:URLRequest = new URLRequest(urlImgArray[0]);
var loader:Loader = new Loader();
loader.load(request, context);
imgItem.source = urlImgArray[0];
<mx:Image trustContent="true" loaderContext="{new LoaderContext(true)}" smoothBitmapContent="true" click="imgItem_clickHandler(event)" buttonMode="true" useHandCursor="true" mouseChildren="false" id="imgItem" width="289" left="10" top="10" bottom="40"/>
Не помогло :(
Добавлено через 3 часа 7 минут
http://s46.***********/i111/1010/60/1e43ff9e2bc7.jpg
вот что происходит перед отображением ошибки. Он пытается загрузить http://s001.***********/crossdomain.xml. Он он не существует. Почему так происходит? Я же явно сказал:
Security.loadPolicyFile("http://www.***********/crossdomain.xml");
Немного о вашей проблеме.
http://www.flasher.ru/forum/blog.php?b=208
и как мне запихнуть это в <mx:Image> ? Я не так давно начал изучение as, поэтому не знаю.
Новичку сложно.
Отнаследовать Image, сделать mx_internal override function contentLoaderInfo_completeEventHandlerСодержимое event.target.bytes загрузить еще раз через event.target.loader.loadBytes(event.target.bytes) По загрузке вызвать super.contentLoaderInfo_completeEventHandler(event);
Добавлено через 20 минут
Попробуйте smoothBitmapContent установить в false. Иначе, сдается мне, что после загрузки изображения будет обращение к (loader.content as Bitmap).smoothing = true А это не разрешается установленной политикой безопасности.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.