Загрузка XML в DataGrid

О загрузке XML-файлов я уже писал, но тогда было мало внимания уделено обработке и использованию загруженного XML-а. И сегодня будет рассмотрен один из способов использования внешнего xml-файла - визуализация данных, полученных из XML-файла, с помощью компонента DataGrid. Это может быть полезно, например, при создании таблицы рекордов в игре, вывода табличных данных в приложениях и т. д...

Допустим, что у нас в XML хранится таблица рекордов от какой-то игры. Сам XML-файл имеет следующий вид...

Код XML:

<?xml version="1.0" encoding="UTF-8" ?> <table> <user name="Елена" score="1"></user> <user name="Ирина" score="2"></user> <user name="Наталья" score="3"></user> </table>

Мы хотим вывести данные из XML-файла на экран и собираемся для этого воспользоваться компонентом DataGrid.

Первым делом, нам нужен сам компонент DataGrid. В Adobe Flash находим этот компонент и перетаскиваем его в библиотеку нашего флеш-проекта.

Потом переходим к коду...

Код ActionScript 3.0:

/* импорт классов */ import fl.controls.DataGrid; import fl.controls.dataGridClasses.DataGridColumn; import fl.data.DataProvider; import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.*; /* загрузка XML-файла */ var loader:URLLoader = new URLLoader(); loader.load(new URLRequest("table.xml")); loader.addEventListener(Event.COMPLETE,onComplete); /* функция, которая выполняется после успешной загрузки XML-файла */ function onComplete(event:Event):void { /* переменная, хранящая XML-файл */ var myxml:XML = XML(event.target.data); /* создаём столбец "Имя" */ var users:DataGridColumn = new DataGridColumn("name");//создаём столбец и в качестве параметра указываем имя столбца users.headerText = "Имя";//заголовок столбца users.width = 150;//ширина столбца /* создаём столбец "Очки" */ var scores:DataGridColumn = new DataGridColumn("score");//создаём столбец и в качестве параметра указываем имя столбца scores.headerText = "Очки";//заголовок столбца scores.width = 100;//ширина столбца /* создаём поставщика данных на основе ранее загруженного XML-документа */ var dp:DataProvider = new DataProvider(myxml); /* создаём компонент DataGrid */ var dg:DataGrid = new DataGrid(); addChild(dg);//добавляем в список отображения dg.x = 150;//позиционируем по оси X dg.y = 100;//позиционируем по оси Y dg.width = 250;//ширина таблицы dg.headerHeight = 40;//высота заголовка таблицы dg.rowHeight = 30;//высота строк в таблице dg.columns = [users,scores];//указываем столбцы для нашей таблицы dg.dataProvider = dp;//источник данных для таблицы dg.rowCount = dg.length;//число строк, видимых в таблице }

Результат:

Вот и всё.

Скачать исходники к данному уроку (под Adobe Flash CS 5.5).

Автор: admin

Дата добавления: 2012-08-29

Просмотров: 4455

Рейтинг поста: +14-

Правила перепечатки

Социальные закладки:
Комментарии:
Комментатор
Комментарий добавил(а): edapskov
Дата добавления: 2015-10-08
Так же, как и в случае с обычным текстовым полем: http://edapskov.ru/pages.php?id=216
Комментатор
Комментарий добавил(а): Эдуард
Дата добавления: 2015-10-08
Скажите пожалуйста, как сделать что в компонент TextArea текст грузился из xml - файла!
Комментатор
Комментарий добавил(а): Daniel
Дата добавления: 2012-08-30
Огромное спасибо! Теперь я понял, почему у меня не получалось - я не указал источник данных для таблицы.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика