首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >列出组件as3

列出组件as3
EN

Stack Overflow用户
提问于 2010-11-10 23:08:16
回答 1查看 2.6K关注 0票数 0

由于某种原因,我的list组件没有显示从xml文件中提取的数据。这里是代码,即使我在"question1“数组上进行跟踪时也会得到这些值。有谁能告诉我我哪里做错了吗?

代码语言:javascript
复制
import fl.controls.List;
    import fl.data.DataProvider;
    var myXML:XML;
    var list:List = new List  ;// new list item
        var question1:Array = new Array();
        var myLoader:URLLoader = new URLLoader();
        myLoader.load(new URLRequest("quiz1.xml"));
        myLoader.addEventListener(Event.COMPLETE, processXML);
        function processXML(e:Event):void
        {
         myXML = new XML(e.target.data);
         list.setSize(200,200);
         var xpos = (stage.stageWidth / 2) - (list.width / 2);
         var ypos = (stage.stageHeight / 2) - (list.height / 2);
         list.move(xpos,ypos);

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

          question1.push(myXML.questions[i].@idno);
          trace(question1);

         }
         list.dataProvider=new DataProvider(question1);
         addChildAt(list,0);
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-10 23:59:31

当访问xml属性时,返回值被类型化为XMLList,fl.data.DataProvider在构建其内部数组时不会对其进行处理。试一试:

代码语言:javascript
复制
question1.push(myXML.questions[i].@idno.toString());

另一种选择是让DataProvider直接从xml构建数据,但您可能需要一个labelField或labelFunction,尝试如下所示:

代码语言:javascript
复制
list.dataProvider=new DataProvider(myXML);
list.labelField = "idno";

此外,您可能想要访问项目单击处理程序中的问题节点,在这种情况下,您可以像这样构建源数组:

代码语言:javascript
复制
question1.push({
    label:myXML.questions[i].@idno.toString(),
    data:myXML.questions[i]
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4145858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档