Нужно иметь SWF на сервере, но данные на другом - PullRequest
0 голосов
/ 29 марта 2012

Мне нужно разместить свой полнофункциональный SWF-сайт на сервере "xx.com". Но вся графика и звуки должны быть загружены с сервера "yy.com".

Внутри моего кода AS3 все данные загружаются по абсолютным адресам, например:

http://yy.com/file1.jpg
http://yy.com/file2.jpg

Если я запускаю swf локально, либо из инструмента разработки Flash, либо из локального файла .html, либо дважды щелкнув по swf, он работает нормально. Все данные загружаются с сайта "yy.com", и сайт отображается правильно.

Это не будет работать, если я загружу SWF на "xx.com" и загрузлю его там.

Я создал следующий crossdomain.xml file

<?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="*" />
</cross-domain-policy> 

и загружено на

http://yy.com/crossdomain.xml

Результат довольно странный: кажется , чтобы начать загрузку 1-2 изображений с "yy.com", но затем он останавливается. Это происходит с файлом crossdomain.xml или без него.

Достигается ли то, что я пытаюсь сделать, каким-то образом? Моя проблема в том, что на xx.com очень ограниченное пространство, поэтому я могу загрузить туда swf и / или html, но не фактические данные (которых много МБ).

Ответы [ 3 ]

1 голос
/ 30 марта 2012

Убедитесь, что вы установили разрешить все внутри вашего SWF

Security.allowDomain("*");
1 голос
/ 30 марта 2012

попробуйте использовать это в качестве файла crossdomain.xml.Это тот, который я использую, и он всегда работал для меня.У него есть дополнительный узел allow-http-request-headers-from

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-access-from domain="*" />
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
0 голосов
/ 30 марта 2012

Решением было добавить LoaderContext к функции load объектов Loader , например:

context = new LoaderContext(true);
loader.load( new URLRequest(name),  context );

Только тогда был проверен файл crossdomain.xml .

...