Flex 3: использование ретранслятора и отправка XML-информации компоненту ... с некоторыми проблемами - PullRequest
0 голосов
/ 26 апреля 2011

Я пытаюсь импортировать файл 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.

У кого-нибудь есть идеи? Я пытался выяснить это на протяжении большей части двух дней, и я совершенно в замешательстве: (

1 Ответ

1 голос
/ 26 апреля 2011

Вы используете projectRP.currentItem.project.positions как Array, но это XMLList. Итак, после каста у вас есть null.

...