SWF не загружаемый модуль - PullRequest
2 голосов
/ 21 апреля 2009

Мы создаем приложение, которое использует модули, которые динамически загружаются в основной SWF. Проблема, с которой мы сталкиваемся, заключается в том, что мы не можем загрузить модули, расположенные на тестовом сервере, когда мы локально отлаживаем главное приложение. Мы получаем ошибку «SWF не загружаемый модуль».

Я посмотрел это и обнаружил, что нам нужен файл междомена на сервере, который дает разрешение на загрузку модулей из внешних источников. Поэтому мы создали простой файл междомена и поместили его на сервер, но это, похоже, не помогает.

Вот файл междомена:

<cross-domain-policy>
  <allow-access-from domain="*"/>
</cross-domain-policy>

Мы загружаем модуль через класс ModuleLoader со всеми настройками по умолчанию, без пользовательского домена приложения и т. Д. При развертывании основного SWF-файла на сервере мы можем загрузить модули без проблем.

Есть какие-нибудь подсказки? Возможно, в файле междомена отсутствуют некоторые настройки?

Обновление : Кажется, что внешний модуль загружен успешно (я могу проверить в моем HTTP-анализаторе), но не удается инициализировать при загрузке в основном приложении. Ошибка по-прежнему: «SWF не загружаемый модуль)

Ответы [ 5 ]

3 голосов
/ 12 мая 2009

Вот предложение, предложенное Adobe JIRA: http://bugs.adobe.com/jira/browse/SDK-15393

1 голос
/ 21 апреля 2009

Я думаю, что Adobe пытается получить доступ к файлу кросс-домена на порту 843, и если он не может подключиться / найти файл на этом порту, он пытается использовать порт, к которому вы пытаетесь подключиться (вероятно, 80, если это http). Не уверен, но вы можете проверить, что ваш сервер разрешает доступ к файлу.

Также стоит отметить, что вы должны разрешить полный доступ к каталогу, в котором находится ваше локальное приложение swf. Сделайте это с помощью диспетчера настроек Adobe: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

Как примечание, я думаю, что менеджер настроек - одна из худших злодеяний пользовательского интерфейса во флеш-эко-системе. Просто тот факт, что им нужно уточнить в тексте под менеджером, что это на самом деле НЕ скриншот, действительно пойдет на пользу.

1 голос
/ 21 апреля 2009

Я согласен, что это может быть проблема между локальными SWF и удаленными SWF. Попробуйте загрузить свой локальный файл на сервер (любой сервер, к которому у вас есть доступ) или, если у вас работает локальный Apache или IIS, попробуйте получить доступ к этому SWF с помощью http://localhost/. Если это работает, мы будем знать, что проблема заключается в переходе между локальным файлом и удаленным файлом. Если это не так, то проблема заключается либо в crossdomain.xml, либо в вашем коде, что менее вероятно, но мы пока не должны исключать это. Если вы решили, что проблема связана с использованием локального SWF-файла, добавьте локальную папку в диспетчере параметров (см. Сообщение Макке)

0 голосов
/ 26 августа 2009

Вот решение, готовое к использованию в соответствии с рекомендацией Adobe.

http://aaronhardy.com/flex/loading-a-remote-module-into-a-local-app/

0 голосов
/ 21 апреля 2009

Похож на мой кросс-домен

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy 
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

То есть на вашем локальном сервере, верно?

Вы проверили свои права доступа к каталогу?

...