Flash Builder URLRequest本地路径无法解析

时间:2012-09-28 18:38:00

标签: actionscript-3 air path flash-builder urlrequest

这是我的基本文件夹结构: http://i.stack.imgur.com/l1YnV.jpg

我的代码是这样的:

private var xmlLoader:URLLoader=new URLLoader();
private var url:URLRequest=new URLRequest("../src/NPClist.xml");

xmlLoader.load(url);

我得到以下内容:

Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: app:/src/NPClist.xml

无论我在URLRequest构造函数中放了多少“../”,它只有在NPClist.xml与.swf(bin-debug)位于同一文件夹中时才有效,我甚至尝试复制它。似乎它忽略/不解决“../”。我也尝试导出发布版本,但它没有用。有趣的是类似的Embeds工作(assets文件夹与src和bin-debug处于同一级别)。

[Embed(source="assets/mainmenu/somefile.png")]

以下是我如何使用它:

var xmlFile:File=new File(File.applicationDirectory.nativePath).resolvePath("../src/NPClist.xml");
var url:URLRequest=new URLRequest(xmlFile.url);

“../”最初不起作用,但是如果你像这样使用它就可以了。


回到它,这似乎也是错误的。以下是它如何按预期工作:

我在安装程序中包含了资产,而我正在使用

imgFile=File.applicationDirectory.resolvePath("assets/folder/file");
urlReq=new URLRequest(imgFile.nativePath);
ldr.load(urlReq);

2 个答案:

答案 0 :(得分:0)

你必须将你的本地资产保存在html-template文件夹中,然后它将加载你的资产而没有用于Web应用程序的IOError,否则在AIR应用程序的情况下使用file:///加载本地资产

答案 1 :(得分:-3)

您无法使用URLRequest访问本地文件系统资源 - URLRequest使用HTTP协议来获取资源。

URLRequest只能访问已应用跨域安全性的Internet资源。

如果要打开本地文件,您应该:

  • 显式强制用户打开文件使用“打开文件”对话框 (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/FileReference.html)

  • 或使用AIR运行时(使用AIR可以打开本地文件,但不能使用URLRequest但使用File类)。