我尝试在ArrayCollection中向ArrayCollection添加一个对象,但它无法正常工作。我通过以下实现获得错误#1009:
for (var x:Number = 0; x < identifyArrayCollection.length; x++)
{
identifyArrayCollection[x].speedsArrayCollection.addItem(speedsObj);
}
我可以将speedsObj添加到不在ArrayCollection中的ArrayCollection。
任何帮助都将不胜感激。
谢谢,
标记
答案 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);
}