![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Народ, хочу спросить кто как грузить внешние XML данные в компоненты - например (ComboBox и DataGrid).
Есть такая XML: <?xml version="1.0" encoding="utf-8"?> <spisok> <razdel>раздел 1</razdel> <razdel>раздел 2</razdel> <razdel>раздел 3</razdel> </spisok> 1.Инициализирую массивы и загрузку: [Bindable]
public var externalXML:XML=new XML();
public var cards:Array =new Array();
private function initApp():void {
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("xmlFile.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(event:Event):void {
var loader:URLLoader = URLLoader(event.target);
externalXML = XML(loader.data);
for (var i:int=0; i<externalXML.children().length(); i++){
cards[i]={label:externalXML.children()[i].toString()};
}
}
Вроде все отображается и загружается (для комбобоха), но как-то кривовато(то что не нравиться я выделил красным). Кроме того, массив cards[i] -вообще не воспринимается через dataProvider в DataGrid. Прошу помочь правильно описать данный массив для компонентов ComboBox и DataGrid. Большое спасибо! ![]() |
|
|||||
|
Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
|
а почему просто не написать так:
? тока в начале надо так написать: |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
1. Лично мне удобнее всего работать с ArrayCollection, потому как там кроме всего прочего, есть удобные средства сортировки, фильтрации и проч.
2. Лучше все-таки избегать глобальных переменных как у тебя сейчас (рельно можно обойтись без нее в приведенном примере). 3. Просто совет: если тебе придется загружать много одинаковых по структуре XML - сразу напиши обертку над HTTPService (под конкретный протокол) - это сильно облегчит задачу в будущем. На счет "неуклюжести" не беспокойся. Чего переживать из-за одной такой строчки. Многие пишут сотни строк неуклюжего кода и не краснеют. Главное - результат
__________________
http://creationcomplete.com |
|
|||||
|
Цитата:
![]() |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
Цитата:
В двух словах: 1. Определяемся с протоколом (причем в обе стороны) 2. Пишем ядро класса, отвечающего за посылку запроса/получение ответа 3. Пишем функционал удобного добавления параметров в запрос (например методом push(param, value)) 4. Пишем функционал обработки результата. То есть чтобы нам сразу приходило кастомное событие с сформированным как нам нужно ArrayCollection и дополнительной инфой из ответа. = Получаем хорошо расширяемую обертку. Поменяли протокол? - меняем только этот класс и перекомпиливаем все модули, которые его используют. И все. Думаю понятны преимущества такого подхода.
__________________
http://creationcomplete.com |
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Цитата:
Кроме того, если не сильно сложно, представь пожалуйста вариант через АррайКоллекшенс. Большое спасибо |
|
|||||
|
Регистрация: Nov 2006
Сообщений: 134
|
Цитата:
На счет ArrayCollection - примеры ищи в help, там они есть.
__________________
http://creationcomplete.com |
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Цитата:
|
|
|||||
|
2 librio
Понял. Спасибо ! |
|
|||||
|
Регистрация: Jul 2004
Сообщений: 430
|
Народ, а по теме кто-нибудь мне ответит?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|