我能够将我的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]});
}
}
代码产生了我找不到的错误。
提前感谢您提供的任何帮助。
安妮
答案 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();