Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка в ArrayCollection данных из PHP (http://www.flasher.ru/forum/showthread.php?t=169923)

zigfridus 14.10.2011 18:42

Загрузка в ArrayCollection данных из PHP
 
Добрый день.

Непонятная вещь происходит. Получаю из PHP данные в виде:
Код AS3:

<?xml version='1.0' encoding='utf-8'?>
<groups>
<record><idgroup>1</idgroup><groupname>administrators</groupname></record>
<record><idgroup>2</idgroup><groupname>users</groupname></record>
</groups>

Если в полученных данных записей record две и больше, то в программе
Код AS3:

var arCol:ArrayCollection;
arCol = event.result.groups.record as ArrayCollection;

переменная arCol получает правильные данные, но если запись record только одна, то arCol почему-то остается равным null.

Подскажите, почему такое происходит?

Genzo 14.10.2011 18:58

event.result какой тип данных у вас и как вы к нему приводите xml?

zigfridus 14.10.2011 19:22

Цитата:

Сообщение от Genzo (Сообщение 1039228)
event.result какой тип данных у вас и как вы к нему приводите xml?

При помощи:
Код AS3:

<s:HTTPService id="phpGroupsSelect" result="resultHandlerGroupsSelect(event)" url="http://localhost/access/selectGroups.php"/>

отправляю запрос на сервер.

Получаю результат в функции resultHandlerGroupsSelect и там же их обрабатываю:
Код AS3:

private function resultHandlerGroupsSelect (event:ResultEvent):void  {
var arCol:ArrayCollection;
arCol = event.result.groups.record as ArrayCollection;
}


GBee 14.10.2011 19:50

event.result.groups.record это по идее XMLList

zigfridus 14.10.2011 20:18

Цитата:

Сообщение от GBee (Сообщение 1039243)
event.result.groups.record это по идее XMLList

а XMLList как-то по-другому загружается в ArrayCollection?

Inet_PC 14.10.2011 21:07

Может:
Код AS3:

new ArrayCollection(event.result.groups.record);

не?

Добавлено через 1 минуту
P.S. Тема явно не в том разделе.

GBee 14.10.2011 21:51

Цитата:

а XMLList как-то по-другому загружается в ArrayCollection?
Я руками парсю если надо в нормальные объекты

zigfridus 17.10.2011 14:10

Цитата:

Сообщение от Inet_PC (Сообщение 1039257)
Может:
Код AS3:

new ArrayCollection(event.result.groups.record);

не?

Добавлено через 1 минуту
P.S. Тема явно не в том разделе.

Та же проблема: при преобразовании только одной записи из XMList в ArrayCollection выдается ошибка
Error #1034: Ошибка типа Coercion: невозможно преобразовать mx.utils::ObjectProxy@5076281 в mx.collections.ArrayCollection.

Если две записи, то преобразование происходит успешно.

Мистика какая-то.

GBee 17.10.2011 14:36

Нет мистики
если две записи, то Array, а одна ObjectProxy

Inet_PC 17.10.2011 14:48

Код AS3:

var arCol:ArrayCollection;
if (event.result.groups.record is Array)
{
        arCol = new ArrayCollection(event.result.groups.record as Array);
}
else
{
        arCol = new ArrayCollection([event.result.groups.record]);
}


zigfridus 17.10.2011 16:08

О...теперь понял и поправил.
Всем спасибо за помощь. :)

Astraport 17.10.2011 20:37

Ого! Вот оно оказывается как решается:)
Пол года назад тоже мучался. Решал добавлением нового элемента, если строка была всего одна. А потом удалял первый элемент.


Часовой пояс GMT +4, время: 20:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.