0

Ich muss meine Full-Flash-SWF-Website auf "xx.com" Server hosten. Aber alle Grafiken und Sounds müssen vom Server "yy.com" geladen werden.Benötigen Sie SWF auf einem Server, aber Daten auf einem anderen

In meinem AS3-Code wird alle Daten durch absolute Adressen geladen, zB:

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

Wenn ich die swf lokal ausgeführt werden, entweder aus dem Flash-Authoring-oder einer lokalen HTML-Datei oder durch Doppelklicken Sie auf die SWF, es funktioniert gut. Alle Daten werden von "yy.com" heruntergeladen und die Seite korrekt angezeigt.

Es wird NICHT funktionieren, wenn ich die swf auf "xx.com" hochladen und es dort laden.

ich folgendes crossdomain.xml Datei

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

und hochgeladen auf

http://yy.com/crossdomain.xml 

Das Ergebnis geschaffen haben, ist schon merkwürdig: es 1-2 Laden von Bildern zu starten scheint aus "yy.com", aber dann hält es an. Dieses Verhalten tritt mit oder ohne die Datei crossdomain.xml auf.

Ist was ich versuche, in irgendeiner Weise erreichbar zu erreichen? Mein Problem ist, dass xx.com sehr begrenzten Platz hat, so dass ich den swf und/oder den html darauf hochladen kann, aber nicht die eigentlichen Daten (das sind viele MBs).

+0

Versuchen Sie, Fiddler Web Debugger zu installieren, wenn Sie auf Windows oder Charles wenn Sie auf einem Mac sind. Sehen Sie nach, ob auf die crossdomain-Datei zugegriffen wird. Überprüfen Sie dann, ob auf die Assets zugegriffen wird. –

+0

Wird Ihr swf über https bedient? Wenn dies der Fall ist, benötigen Sie 'secure =" false "' in Ihrer cross-domain.xml –

+0

Überprüfen Sie auch, ob der Debugger irgendwelche Fehler gibt - normalerweise, wenn es ein domänenübergreifendes Problem ist, sollten Sie erhalten ein Sicherheits-Sandbox-Fehler, der in der Debug-Konsole ausgelöst wird. –

Antwort

0

die Lösung eine Loader zum Last Funktion hinzuzufügen war des Loader Objekte, wie folgt aus:

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

Erst dann wurde die crossdomain.xml Datei überprüft.

1

Verwenden Sie dies als Ihre crossdomain.xml-Datei. Das ist das, was ich benutze und es hat immer für mich funktioniert. Es hat, dass zusätzliche allow-http-Anfrage-Header-von Knoten

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

sicher, dass Sie erlauben setzen alle in Ihrem swf

Security.allowDomain("*");