Frage

Wir schaffen eine App, die Module verwendet, die in den Haupt-SWF dynamisch geladen werden. Das Problem, das wir in laufen, ist, dass wir die Module auf einem Testserver zu laden, sind nicht in der Lage, wenn wir den Haupt-App lokal debuggen. Der Fehler, den wir bekommen, ist „SWF ist kein ladbares Modul“.

Ich sah dies und fand heraus, dass wir eine domänenübergreifende Datei auf dem Server benötigen die Erlaubnis erteilt, die Module von externen Standorten zu laden. So haben wir eine einfache domänenübergreifende Datei und legen, dass auf dem Server, aber das scheint nicht zu helfen.

Hier ist die domänenübergreifende Datei:

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

Wir sind das Modul über die Module Klasse zu laden und alle Standardeinstellungen usw. keine benutzerdefinierte Anwendungsdomäne Wenn wir die Haupt-SWF auf die wir die Module problemlos geladen werden können Server bereitstellen.

Irgendwelche Hinweise? Ist die domänenübergreifende Datei einige Einstellungen möglicherweise fehlt?

Aktualisieren : Es scheint, dass das externe Modul erfolgreich geladen wird (die ich in meinen HTTP-Sniffer überprüfen kann), aber nicht, wenn sie in der Hauptanwendung geladen zu initialisieren. Der Fehler ist immer noch „SWF ist kein ladbares Modul)

War es hilfreich?

Lösung

Hier ist ein vorgeschlagener soultion von Adobe JIRA: http: //bugs.adobe. com / jira / browse / SDK-15393

Andere Tipps

Ich denke, Adobe die Cross-Domain-Datei auf Port 843 zuzugreifen versucht, und wenn es keine Verbindung herstellen können / finden Sie die Datei auf diesem Port er versucht, den Port, den Sie versuchen, eine Verbindung herstellen (wahrscheinlich 80, wenn es http). Nicht sicher, aber Sie könnten überprüfen möchten, um sicherzustellen, dass der Server Zugriff auf die Datei erlaubt.

Auch erwähnenswert ist, dass Sie vollen Zugriff auf das Verzeichnis erlauben sollten, wo Ihre lokale swf Anwendung befindet. Tun Sie dies mit dem Adobe-Einstellungen-Manager: http://www.macromedia.com/support/documentation/ en / flashplayer / help / settings_manager04.html

Als Randbemerkung, ich glaube, die Einstellungen Manager eines der schlimmsten UI atrocoties im Flash-Öko-System ist. Allein die Tatsache, dass sie in einem Text underneith den Manager klären müssen, dass es infact NICHT ein Screenshot ist wirklich nimmt den Kuchen.

Ich bin damit einverstanden, dass es ein Problem zwischen dem lokalen SWFs und Remote-SWFs sein könnte. Versuchen Sie, Ihre lokale Datei auf einen Server hochladen (jeder Server haben Sie Zugriff auf) oder, wenn Sie einen lokalen Apache haben oder IIS ausgeführt wird, versuchen, dass die SWF-Zugriff mit http: // localhost / . Wenn das funktioniert, wissen wir, dass das Problem zwischen einer lokalen Datei und einer Remote-Datei in gehen. Wenn dies nicht der Fall, als das Problem entweder mit crossdomain.xml oder in Ihrem Code ist, was weniger wahrscheinlich ist, aber wir sollten es jetzt noch nicht ausschließen. Wenn Sie feststellen, dass das Problem mit der Verwendung einer lokalen SWF ist, dann fügen Sie den lokalen Ordner im Settings-Manager (siehe Mackes post)

Sieht ähnlich wie meine Cross-Domain

<?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>

Das ist auf Ihrem lokalen Server root, nicht wahr?

Haben Sie Ihre Verzeichnisberechtigungen überprüft?

Hier ist eine Lösung gebündelt bereit für den Einsatz auf Basis von Adobe Empfehlung.

http://aaronhardy.com/ flex / Laden-a-Remote-Modul-in-a-local-app /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top