Flash AS3将XML加载到列表框中

时间:2010-03-16 09:06:17

标签: xml flash cs3

我能够将我的XML文件加载到flash中并跟踪结果。 想要使用xml文件中的信息填充列表框。

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 个答案:

答案 0 :(得分:1)

我认为你的解释中缺少一些有助于澄清问题的项目。

例如,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();