0

ArrayCollection 内の ArrayCollection にオブジェクトを追加しようとしましたが、機能しません。次の実装でエラー #1009 が発生しています。

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

ArrayCollection 内にない ArrayCollection に speedObj を追加できます。

どんな助けでも大歓迎です。

ありがとう、

マーク

4

3 に答える 3

0

複合オブジェクトは最初にそのように初期化する必要があることを忘れないでください。例(最初の実行を想定):

これを行うには2つの方法があります: @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

identifyArrayCollection は、いくつかのオブジェクトを含む ArrayCollection であり、speedsArrayCollection は、identifyArrayCollection に含まれるオブジェクト型の変数として定義された ArrayCollection であると仮定します。

やったほうがいい:

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

次のコードは、呼び出され た のfound at インデックスに項目speedObjを追加します。ArrayCollectionxArrayCollectionidentifyArrayCollection

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 に答える