Actionscript 3 Flash Builder URL请求本地路径未解析

Actionscript 3 Flash Builder URL请求本地路径未解析,actionscript-3,air,path,flash-builder,urlrequest,Actionscript 3,Air,Path,Flash Builder,Urlrequest,这是我的基本文件夹结构: 我的代码是这样的: 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/N

这是我的基本文件夹结构:

我的代码是这样的:

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)在同一个文件夹中时,它才起作用,我甚至试着复制它。它似乎忽略了/没有解决“./”问题。我还尝试导出一个发布版本,但没有成功。有趣的是,类似的嵌入可以工作(assets文件夹与src和bin debug处于同一级别)


下面是我如何让它工作的:

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);

不能使用URLRequest访问本地文件系统资源-URLRequest使用HTTP协议获取资源

URLRequest只能访问应用了跨域安全的Internet资源

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

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

  • 或者使用AIR运行时(通过AIR,您可以打开本地文件,但不能使用URLRequest,而是使用File类)


您必须将您的本地资产保存在html模板文件夹中,然后它将在Web应用程序中加载您的资产而不会出现IOError,否则使用file:///在AIR应用程序中加载本地资产

实际上,我使用的是AIR,而不是file类。我仍然遇到了一些麻烦,但是帮了忙。我认为这是错误的,我经常使用URLRequest获取本地资源。
imgFile=File.applicationDirectory.resolvePath("assets/folder/file");
urlReq=new URLRequest(imgFile.nativePath);
ldr.load(urlReq);