Flash Builder URLRequest lokalen Pfad nicht auflösen
Dies ist meine grundlegende Ordnerstruktur:
http://i.stack.imgur.com/l1YnV.jpg
Mein code geht so:
private var xmlLoader:URLLoader=new URLLoader();
private var url:URLRequest=new URLRequest("../src/NPClist.xml");
xmlLoader.load(url);
Bekomme ich die folgende:
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/src/NPClist.xml
Egal wie viele "../" habe ich das URLRequest-Konstruktor, es funktioniert nur, wenn NPClist.xml ist im selben Ordner wie die .swf (Ordner " bin-debug), und ich habe sogar versucht ihn zu kopieren um. Es scheint, wie es ist, ignorieren/nicht zur Lösung des "../". Ich habe auch versucht beim exportieren der release-build, aber es hat nicht funktioniert. Das interessante an der Sache ist, dass, ähnlich wie Bettet Arbeit (der assets-Ordner ist auf der gleichen Ebene wie src und bin-debug").
[Embed(source="assets/mainmenu/somefile.png")]
Hier ist, wie ich es geschafft habe:
var xmlFile:File=new File(File.applicationDirectory.nativePath).resolvePath("../src/NPClist.xml");
var url:URLRequest=new URLRequest(xmlFile.url);
Den "../" hat nicht funktioniert zunächst, aber es funktioniert, wenn Sie es verwenden, wie dieses.
Kommen darauf zurück, dies scheint auch schief. Hier ist, wie es definitiv funktioniert wie erwartet:
Ich enthalten die Vermögenswerte die mit dem installer, und ich bin mit
imgFile=File.applicationDirectory.resolvePath("assets/folder/file");
urlReq=new URLRequest(imgFile.nativePath);
ldr.load(urlReq);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden URLRequest-Objekt für den Zugriff auf lokale file-system - Ressourcen-und URLRequest-Objekt verwendet das HTTP-Protokoll, Ressourcen zu erhalten.
URLRequest nur auf Internet-Ressourcen, die crossdomain-Sicherheit angewendet.
Wenn Sie möchten, öffnen Sie eine lokale Datei, die Sie sollten:
entweder explizit erzwingen, dass der Benutzer die Datei zu öffnen, verwenden Sie Datei-Öffnen-Dialog
(http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html)
oder verwenden Sie die AIR-Laufzeitumgebung (mit LUFT, die Sie öffnen können lokale Dateien, aber nicht mit URLRequest-aber mit der File-Klasse).
Müssen Sie halten Sie Ihre lokale Vermögenswerte innerhalb der html-template-Ordner, dann laden Sie Ihre Vermögenswerte mit aus IOError für die Web-Anwendung anderweitig zu verwenden: file:///laden lokale Vermögenswerte im Falle einer AIR-Anwendung