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.