0

我尝试将对象添加到 ArrayCollection 内的 ArrayCollection 中,但它不起作用。我收到错误 #1009,执行如下:

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

我可以将速度对象添加到不在 ArrayCollection 中的 ArrayCollection。

任何帮助,将不胜感激。

谢谢,

标记

4

3 回答 3

0

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

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

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

或者如果您真的想使用显式命名约定,则使用匿名对象 - 但是请注意,这些都不是编译时检查的(也不是使用数组访问器的任何东西):

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);
}
于 2012-04-18T23:57:27.183 回答
0

下面的代码将该项目添加speedObj到被调用 ArrayCollection的索引的 found atx中。ArrayCollectionidentifyArrayCollection

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

这是你要找的吗?


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

identifyArrayCollection[x] 
//accesses the item stored in identifyArrayCollection 
//with the key of the current value of x
//NOT the item stored at index x

.speedsArrayCollection
//accesses the speedsArrayCollection field of the object
//returned from identifyArrayCollection[x]

.addItem(speedsObj)
//this part is "right", add the item speedsObj to the
//ArrayCollection
于 2012-04-18T17:32:16.243 回答
0

假设 identifyArrayCollection 是一个包含一些对象的 ArrayCollection,speedArrayCollection 是一个 ArrayCollection,定义为对象类型的变量,包含在 identifyArrayCollection

你应该做:

for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
    identifyArrayCollection.getItemAt(x).speedsArrayCollection.addItem(speedsObj);
}
于 2012-04-18T19:32:52.727 回答