Flash AS3-Erste Sicherheits-sandbox-Verletzung, wenn Sie versuchen, Holen ein externes swf
Hii,
Ich bin tring zu laden swf-Datei auf meiner flash-Anwendung, die von einem anderen server.
Wenn ich versuche zu laden, auf flash IDE (crl+enter) alles ist in Ordnung, aber wenn ich das swf als eine unabhängige swf-Datei oder mit Debuggen, ich bin immer diese Fehlermeldung:
SecurityError: Error #2121: Security sandbox violation: LoaderInfo.content: file:///C|/Users/something/Desktop/blablabla/myplayer.swf cannot access http://www.somedomain.com/blablabla/lalalala/abc.swf. This may be worked around by calling Security.allowDomain.
at flash.display::LoaderInfo/get content()
at wallplayer_fla::MainTimeline/swfLoaded()[wallplayer_fla.MainTimeline::frame1:216]
Cannot display source code at this location.
Habe ich die crossdomain.xml Datei in das Stammverzeichnis meines Servers:
<?xml version="1.0" encoding="UTF-8"?>
<!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>
Im "myplayer.swf" habe ich:
Security.allowDomain("*");
Security.allowInsecureDomain("*");
...
...
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
loaderContext.allowCodeImport = true;
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, swfLoaded);
ldr.load(new URLRequest(graySwfFilename), loaderContext);
...
...
var mcExt;
var ldr:Loader;
function swfLoaded(e:Event):void {
mcExt = MovieClip(ldr.contentLoaderInfo.content);
ldr.contentLoaderInfo.removeEventListener(Event.COMPLETE, swfLoaded);
mcExt.x = 0;
mcExt.y = 0;
addChild(mcExt);
}
Ich weiß wirklich nicht, was zu tun ist...
Bitte HELFEN?
InformationsquelleAutor hdmi3killer | 2011-04-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung: für Flex 4.x (Aktuell 4,6) und AS3 in Flash Builder:
Kontext zu lösen den Fehler " error # 2121
... jetzt laden Sie Ihre SWF-Datei mit
InformationsquelleAutor user1243531
Fügen Sie Ihrem Arbeits-Ordner im Bedienfeld "Globale Sicherheitseinstellungen". Dies ermöglicht Ihnen das laden von externen Dateien, die von einer einzelnen SWF-Datei in Ihrem Dateisystem. Es ist das gleiche, wenn Sie wollen ein.swf zu laden.b.swf-selbst wenn Sie sich in dem gleichen Ordner.
So können Ihre SWF-Lesen externer Dateien.
Sollte dies kein problem sein, wenn Sie laden Sie SWF auf einen server obwohl.
Kann ich die gleichen Ergebnisse erzielen, wenn die Umsetzung myplayer.swf-Datei in eine website?
swf-Datei haben, die der lokalen bis zur globalen be-Beschränkungen. Einmal auf einem server diese Einschränkungen wirken sich nicht auf be -
die Lösung, die Sie mir gelingen, wenn ich es auf meinem computer in genau den Ordner habe ich angegeben, aber als ich versuchte, führen Sie es als eingebettet, auf facebook (wenn Ihr auf meinem server), es nicht zu Holen abc.swf. Haben Sie irgendwelche Ideen?
OK.. ich es herausfinden! Ich hatte gerade zu legen allowDomain in der geladenen swf-statt der laden von swf!!!
InformationsquelleAutor Mattias
Ihre Fehler aus der externen Position, die nicht mit einem cross-domain-Datei, nicht Sie. Schauen Sie sich dieses tutorial auf bridge-Datei zur Kommunikation mit einem externen api. Ich verwendet, as3 und php in diesem Beispiel. Der trick ist, behalten Sie die Kontrolle der cross-domain-Datei auf Ihre domain.Dann lassen Sie Ihre server-Kommunikation mit dem api.
InformationsquelleAutor Quince Wyss