Flex 3: чтение внешнего XML-файла - возникли некоторые проблемы - PullRequest
0 голосов
/ 05 мая 2011

Я пробовал каждый пример, который мог найти, но ничего не получалось.То, что я ищу для кода actionScript (без использования классов - я хотел бы сделать весь код в разделе файла mxml) для загрузки в файл XML, который хранится в том же месте, что и файл swf.

Мой 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 ]

2 голосов
/ 05 мая 2011

Попробуйте и посмотрите, работает ли он ...

<?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 голос
/ 05 мая 2011

Вы должны использовать HTTPService (или аналогичный метод) для загрузки данных XML, а затем использовать результат для заполнения списка после его загрузки.

Вот пример: http://blog.flexexamples.com/2008/03/29/dynamically-loading-xml-files-using-the-httpservice-tag/

Класс URLLoader также является опцией вместо HTTPService.Общий метод одинаков для обоих.

...