2010-03-16 35 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