2013-05-27 90 views
0

我試圖在for循環中調用XML文件。我正在使用以下代碼:actionscript 3在for循環中打開XML

for (var i:uint = 0; i < files.length; i++) 
{ 
    savefilelocation = File.applicationStorageDirectory.resolvePath("puzzle.xml") 
    var puzzleInput:XML = new XML; 
    var myLoader:URLLoader = new URLLoader(); 
    myLoader.load(new URLRequest(savefilelocation.name)); 
    myLoader.addEventListener(Event.COMPLETE, processXML1); 
    PuzzleTitle = puzzleInput.Title; 
} 
function processXML1(event:Event) :void{ 
    puzzleInput = new XML(event.target.data); 
    trace("puzzleInput: "+puzzleInput.data) 
    trace(puzzleInput.name) 
    trace(puzzleInput.url) 
} 

通常在for循環中,我可以調用其他函數。但是,在這個代碼部分,我無法達到processXML1函數。有沒有我錯過的一點?謝謝你的幫助。

+0

向加載器添加錯誤偵聽器並檢查它是否被調用。 – Vesper

+0

我添加了:myLoader.addEventListener(IOErrorEvent.IO_ERROR,IO_ERROR_PuzzlegameLoaderXML1) 但它沒有去錯誤功能,也沒有 –

+1

爲什麼當你可以用_FileStream_對象同步打開文件時使用URLLoader? – Larusso

回答

0

好吧,我一直在嘗試Larusso說的話,最後我得到了屬性。這裏是正確的方法:

var fileStream:FileStream = new FileStream(); 
    fileStream.open(savefilelocation, FileMode.READ); 
    var rawData:String = fileStream.readUTFBytes(fileStream.bytesAvailable); 
    fileStream.close(); 
    var out:XML = XML(rawData); 
    PuzzleTitle = out.Title; 

我已經添加了這些代碼而不是URLLoader。最後我得到了正確的結果。感謝您的幫助。