![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
всем привет!
я сново застрял, помогите плс значит так - забераю XML через HTTPService <mx:HTTPService id="mainData" url="data/maindata.xml" result ="mainDataResultHandler(event)" /> ParseResult выглядит так public class ParseResult{
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.collections.ArrayCollection;
import mx.collections.IViewCursor;
import flash.utils.describeType;
public static function getWelcomeStr(event:ResultEvent):String{
return event.result.maindata.sysnavi.welcome;
}
public static function getHomeAdv1Data(event:ResultEvent):Array{
return getStructureLevelData(event.result.maindata.home.adv1.item);
}
public static function getHomeAdv2Data(event:ResultEvent):Array{
return getStructureLevelData(event.result.maindata.home.adv2.item);
}
private static function getStructureLevelData(items:ArrayCollection):Array{
var temp:ArrayCollection = new ArrayCollection();
var img:String = "";
var cursor:IViewCursor = items.createCursor();
while (!cursor.afterLast){
img = "";
if(cursor.current.img != null){
img = cursor.current.img;
}
temp.addItem({label:cursor.current.pageName, data:new Structure(cursor.current.id, cursor.current.template, cursor.current.pageName, img)});
cursor.moveNext();
}
return temp.toArray();
}
}
<?xml version="1.0" encoding="UTF-8"?>7 <maindata> <sysnavi> <welcome>Welcome !</welcome> </sysnavi> <home> <adv1> <item id="id001" template="template001" pageName="#1" img="http://127.0.0.1:8080/gfx/img/ff808082144529eb0114457118ed0006.png"/> <item id="id001" template="template001" pageName="#1" img="http://127.0.0.1:8080/gfx/img/ff808082144529eb0114452b66e70005.png"/> <item id="id001" template="template001" pageName="#1" img="http://127.0.0.1:8080/gfx/img/ff808082147a6c0e01147ab9067d0025.png"/> </adv1> <adv2> <item id="id001" template="template001" pageName="#1" img="http://127.0.0.1:8080/gfx/img/ff808082153db79501153e29be180014.png"/> </adv2> </home> </maindata> если я зарание знаю что в xml только String, как maindata.sysnavi.welcome то считываю через мой ParseResult и все ок..... а то что мне совсем не понятно это ситуация с maindata.home.adv1.item и maindata.home.adv2.item - если элементов item > 1 то все ок, а если только один то оно просто умерает.... я так понимаю, что в этом случае идет возврат данных не как ArrayCollection.... вот собственно и вопрос, как в моем случае сделать так, что бы независимо от того сколько item в xml-Node правильно все парсилось.... зарание благодарен! |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 1,058
|
Я в твоем коде вообще неувидел функций, которые возвращают Array Collection
попробуй сменить на и на Последний раз редактировалось †‡Paladin‡†; 03.11.2007 в 15:33. |
|
|||||
|
может не очень ясно выразился
АrrayCollection получается автоматом из ResultEventa public static function getHomeAdv1Data(event:ResultEvent):Array{
return getStructureLevelData(event.result.maindata.home.adv1.item);
}
public static function getHomeAdv1Data(event:ResultEvent):Array{
return getStructureLevelData(event.result.maindata.home.adv1.item as ArrayCollection);
}
проблема именно в вытаскивании инфо из XML в виде ArrayCollection, даже если там всего 1 элемент....... |
|
|||||
|
Все отбой! Всем спасибо, сделал все совсем по другому........
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|