2010-03-16 37 views
0

我可以將我的XML文件加載到Flash和跟蹤結果中。 想要使用xml文件中的信息填充列表框。 xml文件的Flash AS3將XML加載到列表框中

結構:

<eBorders> 
    <item> 
     <thumb>borderTh/blank_th.jpg</thumb> 
     <file>border/blank.jpg</file>  
    </item> 
    <item> 
     <thumb>borderTh/border1_th.jpg</thumb> 
     <file>border/border1.jpg</file>  
    </item> 
</eBorders> 

AS3代碼:

var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("xml/borders.xml")); 

var dp:DataProvider = new DataProvider("borders.xml"); 

border_lb.dataProvider = dp; 
border_lb.iconField = "iconSource"; 
border_lb.rowHeight = 45; 

function processXML(e:Event):void { 
myXML = new XML(e.target.data); 
for(var i:int=0;i<myXML.*.length(); i++){ 
    dp.addItem({iconSource:myXML.item.thumb.[i]}); 
    } 
} 

代碼生成錯誤我無法找到。

非常感謝您提供任何幫助。

安妮

回答

1

我認爲有些項目的explanatiion丟失,這將有助於澄清你的問題。

例如,processXML函數正在由事件(e:Event)觸發,但該事件未顯示。

此外,還不清楚究竟是什麼border_lb(即它是一個對象,一個字典?)。

話雖這麼說,我想改變的關鍵路線是:

iconSource:myXML.item.thumb [I]

iconSource:myXML.item.thumb.text ()[I]

OR

iconSource:myXML.item.thumb [I] //減去週期

請參閱示例:

import fl.data.DataProvider; 


var myXML:XML = <eBorders> 
    <item> 
     <thumb>borderTh/blank_th.jpg</thumb> 
     <file>border/blank.jpg</file>  
    </item> 
    <item> 
     <thumb>borderTh/border1_th.jpg</thumb> 
     <file>border/border1.jpg</file>  
    </item> 
</eBorders>; 

var dp:DataProvider = new DataProvider(); 
var border_lb:Dictionary = new Dictionary(); 
border_lb.dataProvider = dp; 
border_lb.iconField = "iconSource"; 
border_lb.rowHeight = 45; 

function processXML():void { 

for(var i:int=0;i < myXML.*.length(); i++){ 

    trace(myXML.item.thumb.text()[i]); 
    dp.addItem({iconSource:myXML.item.thumb.text()[i]}); 
    } 
} 

processXML(); 
+0

border_lb是listbox。 通過完整加載xml文檔觸發的processXML - 代碼已更改: var dp:DataProvider = new DataProvider(); border_lb.dataProvider = dp; border_lb.iconField =「iconSource」; border_lb.rowHeight = 45; var myXML:XML; var myLoader6:URLLoader = new URLLoader(); myLoader6.load(new URLRequest(「xml/borders.xml」)); myLoader6.addEventListener(Event.COMPLETE,processXML);函數processXML(e:Event):void { myXML = new XML(e.target.data); (var i:int = 0; i Anne 2010-03-16 16:42:59

+0

想要將圖標或縮略圖添加到名爲border_lb的列表框中。圖標存儲在文件夾borderTh中,文件名爲border1_th.jpg。在子文件的XML文件中。圖標代表的實際圖片位於邊框文件夾中,文件名爲border1.jpg。在子文件的XML文件中。 現在我需要用圖標和數據填充border_lb。 謝謝你的時間。安妮 – Anne 2010-03-16 16:54:54