2012-10-19 68 views
0

我沒有經驗,所以請耐心等待我的錯誤。我以前從未使用過XML。 在我的Air應用程序中,我試圖加載測試XML並在我的應用程序中顯示一些數據。從AS3的外部URL加載XML

的XML很簡單:

<player> 
<highscore>Over9000</highscore> 
</player> 

我的代碼是:

var myXML:XML; 
var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("https://www.dropbox.com/s/0lx69pd73cmboh9/Leaderboard.xml")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 
function processXML(e:Event):void { 
    myXML = new XML(e.target.data); 
    trace(myXML.highscore); 
} 

這時候我只是加載從我的項目的源文件夾中的XML,但只要正常工作,因爲我嘗試使用URL我得到這個錯誤:

Error #1083: The prefix "form" for element "error" is not bound.

+0

對不起,但你的代碼工作。問題在別處... – Florent

回答

1

從我所看到的,https://www.dropbox.com/s/0lx69pd73cmboh9/Leaderboard.xml不會鏈接一個XML,但是包含其內容的HTML頁面。你在加載器中得到的不是你正在尋找的XML,而是Dropbox包裝器的源代碼。

+0

哦,我明白了,我想知道'form'和'error'是從哪裏來的。 – CptRayMar

+0

我找到了下面的實際鏈接:https://dl.dropbox.com/s/0lx69pd73cmboh9/Leaderboard.xml?dl=1 它現在可以使用。感謝您指引我朝着正確的方向 – CptRayMar

+0

根據Dropbox設置權限的方式,您可能會發現,當您在服務器上部署應用程序時,您會遇到跨域沙盒問題。 (也就是說,如果一個文件位於swf所在的另一個域中,它將會引發一個錯誤,當您在IDE中測試時,這種情況不會發生,所以它可能會在第一時間起作用)。如果這是你可以寫一個非常簡單的php代理,它基本上回應了你自己域中某個位置的內容。像這樣:'echo file_get_contents('http://domain.com/data/file.xml');' – null