2 Stimmen

Flash AS3 - URLLoader kann keine Binärdaten aus einer anderen Domäne laden

Zwei wichtige Punkte. 1 - SWF muss in der Lage sein, Binärdaten aus einem beliebigen Bereich zu laden. 2 - SWF kann keine Policy-XML-Datei von einer URL laden, da das Upload-Formular nur das Hochladen von SWF-Dateien zulässt, so dass ich keine anderen Daten einfügen kann. Ich habe es versucht:

Security.allowDomain("*");

Es funktioniert jedoch nur für SWF-Dateien. Ich habe versucht, Politik XML-Datei einbetten:

var dataXML:XML = 
<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
</cross-domain-policy>;

Aber Security.loadPolicyFile(url:String) erlaubt nur das Setzen der Datei-URL, nicht der Daten. Meine Frage ist also, wie kann ich SWF erlauben, Binärdateien von verschiedenen Domänen zu laden, ohne eine zusätzliche Datei zu haben? URLLoader-Code:

var request:URLRequest = new URLRequest("http://differentdomain.com/binaryfile.dat");
var words:URLLoader = new URLLoader(); 
words.dataFormat = URLLoaderDataFormat.BINARY; 
words.addEventListener(Event.COMPLETE, prepareFile);
words.addEventListener(IOErrorEvent.IO_ERROR, loadError);
words.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secureError);
words.load(request);

Dies führt zu einem Sicherheitsfehler, wenn die Datei aus einer anderen Domäne stammt als die SWF-Datei. Danke für jede Hilfe.

Es ist möglich, binäre Daten von JavaScript mit ExternatInterface in AS3-Code zu erhalten. Hier ist Cross-Browser-Bibliothek für das Lesen von Dateien binär: Binärleser und spätere Versionen jDataView Ich hoffe, dass dies jemandem helfen wird. Dank an Jonatan Hedborg für die Idee.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X