【问题标题】:Flex 3: Usuing a repeater & sending XML information to a component... havng some issuesFlex 3:使用中继器并将 XML 信息发送到组件......有一些问题
【发布时间】:2011-08-13 02:13:59
【问题描述】:

我尝试导入一个 XML 文件,并将零碎的信息发送到自定义组件。

我的 XML 文件结构如下:

<projects>
  <project>
        <projName>{Insert title of project here}</projName>
        <startDate>{Insert date here}</startDate>
        <positions>
              <daysOffset>{Insert a number here}</daysOffset>
              <numDays>{Insert a number here}</daysOffset>
              <role>{Insert role here}</role>
              <student>{Insert name here}</student>
        </positions>
        // There can be an unlimited amount of positions listed
  </project>
  // There can be an unlimited amount of projects listed

我使用以下命令读入 XML 数据:

<mx:XML id="projectsXML" xmlns="" source="xml/projects.xml" format="e4x" />

导入 XML 后,我尝试使用转发器将每个标签内的信息发送到自定义组件。我的代码如下:

<mx:Canvas width="100%" height="95%" x="0" y="80">
    <mx:Repeater id="projectRP" dataProvider="{projectsXML}">
        <Block:project 
            oneDay="{usableSize.width/14}" 
            projectTitle="{projectRP.currentItem.project.projName}"
            projectDate="{projectRP.currentItem.project.startDate}"
            projectPositions="{projectRP.currentItem.project.positions as Array}"
            />
    </mx:Repeater>
</mx:Canvas>

当我保存项目时,我没有收到任何错误或警告。但是,当我尝试输出组件中的值时,projectPositions 片段会返回为 Null。

有人有什么想法吗?在这两天的大部分时间里,我一直在努力解决这个问题,我完全被难住了:(

【问题讨论】:

    标签: xml apache-flex components


    【解决方案1】:

    您将projectRP.currentItem.project.positions 投射为Array,但它是XMLList。所以在投射后你有null

    【讨论】:

    • 有什么简单的方法可以将此 XMLList 转换为数组吗?我尝试为每个循环创建一个函数,但它返回的长度为 0 :(
    • 您可以通过以下方式迭代XMLListfor eachfor each (var item:XML in myXMLList)
    • 非常感谢...原来我必须在你提到的 for each 中嵌套一个 for each,因为我在位置组周围有一个“”标签。如果我这样做了,则请求 Alert.show(String(item.position.startOffset));将显示每个偏移量(包括标签)。
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多