2013-09-29 33 views
1

如何讀取用戶桌面上的xml文件?我試過這個:Adob​​e Air as3 - 從桌面讀取XML文件

import flash.events.Event; 
import flash.net.URLLoader; 

var myXML:XML = new XML(); 
var myLoader:URLLoader = new URLLoader(new URLRequest(File.desktopDirectory.nativePath + "/a.xml")); 
myLoader.addEventListener(Event.COMPLETE, xmlLoaded); 

function xmlLoaded(event:Event):void 
{ 
    myXML = XML(myLoader.data); 
    trace(myXML);  
} 

但它不起作用。

回答

7

當使用URLLoader本地文件,你應該使用合適的URL scheme,像fileappapp-storageFile.url property將爲您提供適當的本地URL,例如file:///C:/Users/Username/Desktop/

File.desktopDirectory.resolvePath('a.xml').url 

另外,經常更好的辦法是使用FileStream API,因爲它是專門爲文件系統通信的根本目的,還支持同步操作:

var file:File = File.desktopDirectory.resolvePath('a.xml'); 
var document:XML; 

var stream:FileStream = new FileStream(); 
stream.open(file, FileMode.READ); 
document = XML(stream.readUTFBytes(stream.bytesAvailable)); 
stream.close(); 

trace(document); 
0

顯然,這可以通過簡單地添加一個'/'來完成。

var myLoader:URLLoader = new URLLoader(new URLRequest(File.desktopDirectory.nativePath + "/a.xml")); 

變化:

var myLoader:URLLoader = new URLLoader(new URLRequest("/" + File.desktopDirectory.nativePath + "/a.xml"));