2010-04-29 2 views
2

я получаю эту ошибку, когда я извлечь XML, который имеет только 1 узел (не повторяющихся узлов) и я стараюсь хранить в ArrayCollection. -Когда у меня БОЛЬШЕ, чем 1 "имя" узлов ... Я НЕ получаю сообщение об ошибке.Ошибка ArrayCollection в Flex не принимает отдельные узлы XML - альтернативы?

TypeError: Error #1034: Type Coercion failed: cannot convert "XXXXXX" to mx.collections.ArrayCollection. 

эта ошибка возникает в строке кода:

myList= e.result.list.name; 

Почему не может ArrayCollection работать с одним узлом? Я использую этот ArrayCollection как dataprovider для Компонента - есть ли альтернатива, которую я могу использовать, которая возьмет BOTH одиночные и повторяющиеся узлы, а также будет работать как dataprovider? Заранее спасибо!

код:

[Bindable] 
private var myList:ArrayCollection= new ArrayCollection(); 

     private function getList(e:Event):void{ 

      var getStudyLoungesService:HTTPService = new HTTPService(); 
      getStuffService.url = "website.com/asdf.php"; 
      getStuffService.addEventListener(ResultEvent.RESULT, onGetList); 
      getStuffService.send(); 

     } 

     private function onGetList(e:ResultEvent):void{ 

      myList= e.result.list.name; 
     } 

ответ

1

resultFormat должен быть установлен в e4x:

var getStudyLoungesService:HTTPService = new HTTPService(); 
getStuffService.url = "website.com/asdf.php"; 
getStuffService.resultFormat = "e4x"; 
getStuffService.addEventListener(ResultEvent.RESULT, onGetList); 
getStuffService.send(); 

Вы можете получить результаты следующим образом:

new XMLListCollection(e.result.list.name); 

(Все кредиты Amarghosh, стучал головой о том, что один в течение нескольких часов, но почти пропустил свой комментарий!)

0

Вы не можете напрямую назначить XML или даже XMLList переменной типа ArrayCollection. Используйте XMLListCollection и передайте данные его конструктору.

[Bindable] 
private var myList:XMLListCollection; 

myList = new XMLListCollection(e.result.list.name); 
+0

благодаря Amarghosh. Тем не менее, это не выглядит как XMLList является действительным DataProvider .. Я получаю эту ошибку: TypeError: Error # 1034: Тип Принуждение: не могу преобразовать mx.collections :: ArrayCollection @ ddbc7c1 в XMLList. Есть ли другой тип данных, который я все еще могу использовать? – Rees

+0

это не XMLList, это 'XMLListCollection'. Измените тип myList из коллекции массива на коллекцию xmllist – Amarghosh

+0

привет снова amarghosh, я пробовал XMLListCollection, однако получил эту ошибку: ТипError: Ошибка # 1034: Тип Coercion failed: невозможно преобразовать mx.collections :: ArrayCollection @ aaa0301 в XMLList , я уверен, что, когда она имеет тип XMLList, потому что частных вар studyLounges: XMLListCollection; - это моя инициализация. любые другие мысли, какие альтернативные типы данных? – Rees

 Смежные вопросы

  • Нет связанных вопросов^_^