Кажется, я не могу обойти эту проблему с загрузкой изображений в своем проекте actionscript 3.0. Я подозреваю, что это как-то связано с тем, как я настроил crossDomain.xml. Проблема в том, что я могу загрузить миниатюрные изображения фильмов youtube из http://img.youtube.com/ во флэш-память и отображать их полностью при тестировании / запуске SWF в автономном (локальном) проигрывателе.
Но когда я загружаю SWF-файл и проверяю его через Интернет, я получаю ошибки «Песочницы» и нарушения безопасности.
Вот мой файл crossDomain.xml (хранится в корне сервера):
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd>
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Вот несколько AS3:
Security.loadPolicyFile('http://youtube.com/crossdomain.xml');
// LoaderContext used
externalLoaderCntxt = new LoaderContext( true, new ApplicationDomain() );
loader.load( http://img.youtube.com/vi/nTYcgnqAzqE/2.jpg, externalLoaderCntxt );
Вот ошибка, которую я получаю с текущей конфигурацией crossDomain.xml и loaderContext
SecurityError: Error #2123: Security sandbox violation: LoaderInfo.content: http://*.*.com/bin/PipedLoader_test.swf?ver=ef331d0dcb1e1ef59b325969ebadafa4 cannot access http://img.youtube.com/vi/nTYcgnqAzqE/2.jpg. No policy files granted access.
at flash.display::LoaderInfo/get content()
at *.pipedLoader::PipedLoader/onImageLoadComplete()[*\pipedLoader\PipedLoader.as:915]
Я пытался создать LoaderContext без checkPolicyFiles как ложного.
Есть ли способ устранить эти нарушения безопасности Sandbox? Или поскольку используемый файл crossDomain.xml размещен на YouTube.com, я ничего не могу изменить?
Если это лестница, как можно загрузить эти миниатюры и использовать их? Может ли файл политики наложить ограничения на свойство loaderInfo.content?
Любая помощь будет отличной, спасибо!
TwoBit