Flash AS3 загружает XML в список - PullRequest
0 голосов
/ 16 марта 2010

Я могу загрузить свой XML-файл во флэш-память и отследить результаты. Хотите заполнить список информацией из файла XML.

Структура XML-файла:

   <eBorders> 
    <item> 
        <thumb>borderTh/blank_th.jpg</thumb>
        <file>border/blank.jpg</file>       
    </item>
    <item> 
        <thumb>borderTh/border1_th.jpg</thumb>
        <file>border/border1.jpg</file>     
    </item>
</eBorders>

AS3 код:

var myLoader:URLLoader = new URLLoader();
myLoader.load(new URLRequest("xml/borders.xml"));

var dp:DataProvider = new DataProvider("borders.xml");

border_lb.dataProvider = dp;
border_lb.iconField = "iconSource";
border_lb.rowHeight = 45;

function processXML(e:Event):void {
myXML = new XML(e.target.data);
for(var i:int=0;i<myXML.*.length(); i++){
    dp.addItem({iconSource:myXML.item.thumb.[i]});
    }
}

Код выдает ошибку, которую я не могу найти.

Заранее благодарим за любую помощь, которую вы можете предложить.

Энни

1 Ответ

1 голос
/ 16 марта 2010

Я думаю, что в вашем объяснении отсутствуют некоторые элементы, которые могли бы помочь прояснить вашу проблему.

Например, функция processXML запускается событием (e: Event), но это событие не отображается.

Кроме того, неясно, что именно представляет собой border_lb (т.е. это объект, словарь?).

При этом, я думаю, ключевая строка для изменения:

iconSource:. MyXML.item.thumb [я]

до

iconSource: myXML.item.thumb.text () [я]

OR

iconSource: myXML.item.thumb [i] // минус период

См. Пример:

import fl.data.DataProvider;


var myXML:XML = <eBorders> 
    <item> 
        <thumb>borderTh/blank_th.jpg</thumb>
        <file>border/blank.jpg</file>       
    </item>
    <item> 
        <thumb>borderTh/border1_th.jpg</thumb>
        <file>border/border1.jpg</file>     
    </item>
</eBorders>;

var dp:DataProvider = new DataProvider();
var border_lb:Dictionary = new Dictionary();
border_lb.dataProvider = dp;
border_lb.iconField = "iconSource";
border_lb.rowHeight = 45;

function processXML():void {

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

    trace(myXML.item.thumb.text()[i]);
    dp.addItem({iconSource:myXML.item.thumb.text()[i]});
    }
}

processXML();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...