2012-09-28 43 views
4

這是我的基本的文件夾結構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)位於同一個文件夾時纔有效,我甚至試着複製它d。它似乎忽略/不解決「../」。我也嘗試導出發佈版本,但沒有奏效。有趣的是類似的嵌入工作(資產文件夾與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); 

回答

-3

不能使用的URLRequest訪問本地文件系統資源 - 的URLRequest使用HTTP協議來獲得資源。

URLRequest只能訪問應用了跨域安全性的Internet資源。

如果你想打開一個本地文件,你應該:

  • 明確地強制用戶打開文件使用打開文件對話框 (http://help.adobe.com/en_US/FlashPlatform /reference/actionscript/3/flash/net/FileReference.html)

  • 或使用AIR運行時(與AIR可以打開本地文件,但不具有的URLRequest但File類)。

+0

其實,我使用的是AIR,而不是File類。我仍遇到一些麻煩,但[此鏈接](http://taytay.com/?p=53)有所幫助。 – manabk

+3

我認爲這是錯誤的,我經常使用本地資源的URLRequest。 –

0

你必須保持你的本地資產的HTML模板文件夾內,然後它會載入你的資產進行IO錯誤的Web應用程序,否則使用file:///在AIR應用程序的情況下加載本地資產