Дочерние элементы ArrayCollection возвращают значение null

У меня есть ArrayCollection со следующей структурой (при просмотре в режиме отладки):

[0]
- [0]
-- src
- [1]
-- src

src — это путь к изображению.

Мне нужно получить все src из коллекции массивов. Однако из-за первого (безымянного) узла я не могу их принять.

Я пробовал ArrayCollection[0].children и сохранял результат в другом ArrayCollection, однако в новом ArrayCollection есть 2 объекта, но нет «src». Есть только 2 нулевых объекта

firstArrayCollection заполняется данными, как описано выше.

secondArrayCollection.addItem(firstArrayCollection[0].children);

при просмотре содержимого secondArrayCollection я вижу следующую структуру (и данные):

[0] null
[1] null

person Jozzeh    schedule 12.08.2009    source источник


Ответы (1)


пытаться

var i:int = 0;
var myNormalArray:Array = new Array();

//loop through collection
for each (var child:* in myArrayCollection)
{
  //do what you want with the child
  myNormalArray[i++] = child;
}

Это выведет все объекты из коллекции в обычный массив, где на них можно ссылаться по их индексу. Если вы посмотрите на коллекцию массивов, у нее нет понятия длины, поэтому индекс не может быть индексом, он должен быть ключом.

или просто сделать это, думая об этом (хотя я никогда этого не делал)

var myArray:Array = myArrayCollection.toArray();

надеюсь это поможет

Джон

//********************************************************

Вторая попытка!!!!!!

var pathArray:Array = new Array();
var i:int = 0;
for each (var child:* in myArrayCollection)
{
  for each (var pathObject:Object in child)
  {
    pathArray[i++] = pathObject.src;
  }
}

это должно работать, я не проверял это, хотя

person Jon    schedule 12.08.2009
comment
Спасибо за ваш быстрый ответ. Я пробовал оба из них, но я просто получаю массив с той же структурой, что и ArrayCollection. Таким образом, первый [0] узел по-прежнему блокирует меня, чтобы использовать его в качестве поставщика данных. - person Jozzeh; 13.08.2009
comment
являются ли они объектом со свойством src или просто строкой с источником или ассоциативным массивом с src в качестве ключа и путем в качестве значения? - person Jon; 13.08.2009
comment
это изображение может сделать это немного проще: img11.imageshack.us/img11/7578/afbeelding1k .png мне нужны данные, которые находятся в src (img/images/rekske.png ‹- пример, реальное приложение будет иметь переменные изображения) - person Jozzeh; 13.08.2009
comment
Массив содержит только src для изображений, так что палец вверх. Но теперь мне интересно, как я могу использовать этот массив в качестве поставщика данных для листа тайлов с обработчиком элементов. ‹mx:TileList id=dtGrid dataProvider={pathArray}› ‹mx:itemRenderer› ‹mx:Component› ‹mx:Image source={data}/› ‹/mx:Component› ‹/mx:itemRenderer› ‹/mx: TileList› не работает... в любом случае, спасибо за помощь - person Jozzeh; 13.08.2009