你可以在arraycollection中的arraycollection中添加一个对象吗?

时间:2012-04-18 17:14:57

标签: flex arraycollection

我尝试在ArrayCollection中向ArrayCollection添加一个对象,但它无法正常工作。我通过以下实现获得错误#1009:

for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
    identifyArrayCollection[x].speedsArrayCollection.addItem(speedsObj);
}

我可以将speedsObj添加到不在ArrayCollection中的ArrayCollection。

任何帮助都将不胜感激。

谢谢,

标记

3 个答案:

答案 0 :(得分:0)

以下代码将speedObj项添加到名为ArrayCollection的{​​{1}}的索引x找到的ArrayCollection

identifyArrayCollection

这是你要找的吗?


您拥有的代码执行以下操作:

identifyArrayCollection.getItemAt(x).addItem(speedsObj);

答案 1 :(得分:0)

假设 identifyArrayCollection是一个包含一些Objects和的ArrayCollection speedsArrayCollection是一个ArrayCollection,定义为ObjectArrayCollection中包含的Object类型的变量

你应该这样做:

for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
    identifyArrayCollection.getItemAt(x).speedsArrayCollection.addItem(speedsObj);
}

答案 2 :(得分:0)

不要忘记任何复合对象需要首先初始化。 例如(假设初始运行):

有两种方法可以做到这一点:@Sam

的背驮式
for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
   if (!identifyArrayCollection[x]) identifyArrayCollection[x] = new ArrayCollection();
   identifyArrayCollection[x].addItem(speedsObj);
}
如果你真的想使用显式命名约定,那么

或使用匿名对象 - 但要注意这些 NOT 编译时检查(也没有使用数组访问器):

for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
   if (!identifyArrayCollection[x]) 
   {
      var o:Object = {};
          o.speedsArrayCollection = new ArrayCollection();
      identifyArrayCollection[x] = o;
   }
   identifyArrayCollection[x].speedsArrayCollection.addItem(speedsObj);
}