0

我能够将我的 XML 文件加载到闪存和跟踪结果中。想要使用来自 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]});
    }
}

代码正在产生我找不到的错误。

提前感谢您提供的任何帮助。

安妮

4

1 回答 1

1

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

例如,processXML 函数由事件 (e:Event) 触发,但未显示该事件。

此外,还不清楚border_lb 到底是什么(即它是一个对象,还是一个字典?)。

话虽如此,我认为改变的关键是:

图标来源:myXML.item.thumb.[i]

图标来源:myXML.item.thumb.text()[i]

或者

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();
于 2010-03-16T15:43:26.927 回答