Flex 3:读取外部xml文件 - 有一些问题

时间:2011-05-04 23:03:58

标签: xml flex urlloader

我已经尝试过我能找到的每一个例子,但没有真正有效。我正在寻找动作脚本代码(不使用类 - 我想在mxml文件的部分中执行所有代码)来加载存储在与swf文件相同位置的XML文件。

我的XML设置如下:

<?xml version="1.0" encoding="utf-8"?>
<projects>
    <project>
        <projName>project1</projName>
        <startDate>5/5/2011</startDate>
        <positions>
            <position>
                <startOffset>1</startOffset>
                <numDays>4</numDays>
                <role>1D</role>
                <student>Project 1 - Name 1</student>
            </position>
            ... repeat for however many position pieces there are
        </positions>
    </project>
    ... repeat for however many project pieces there are
</projects>

我希望将其作为一个简单的XML(变量名的projectsXML)阅读,以便我可以执行以下操作:

<mx:Repeater id="singleProject" dataProvider="{projectsXML.projects.project}">
    <mx:Text id="projectName" text="{singleProject.currentItem.projName}" />
</mx:Repeater>

我实际上要做的是调用转发器中的组件并传递变量,但如果我能实现上述目标,我很确定我能弄明白其余的。

如果有人可以帮助我,我会非常感激...所以我可以不停地撞到墙上:(

提前致谢, 亚历

2 个答案:

答案 0 :(得分:2)

试试这个,看它是否有效......

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
     minWidth="955" minHeight="600"
        creationComplete="{projectsHttp.send()}" layout="vertical">
    <mx:HTTPService id="projectsHttp" url="projects.xml" />
    <mx:Repeater id="rpt" 
         dataProvider="{projectsHttp.lastResult.projects.project}" >
        <mx:Label text="{rpt.currentItem.projName}" />
    </mx:Repeater>
</mx:Application>

答案 1 :(得分:1)

您可以使用HTTPService(或类似方法)加载XML数据,然后使用结果在加载后填充列表。

以下是一个示例:http://blog.flexexamples.com/2008/03/29/dynamically-loading-xml-files-using-the-httpservice-tag/

URLLoader类也是代替HTTPService的选项。两种方法的一般方法相同。