2012-04-18 4 views
0

ArrayCollection 내에서 ArrayCollection에 객체를 추가하려고 시도했지만 작동하지 않습니다. 나는 다음과 같은 구현 오류 # 1009를 얻고있다 :arraycollection 안의 arraycollection에 객체를 추가 할 수 있습니까?

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

가 나는 ArrayCollection에 내부가 아닌있는 ArrayCollection에 speedsObj를 추가 할 수 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다,

마크

답변

0

다음 코드는 identifyArrayCollection라는 ArrayCollection의 인덱스 x에서 발견 된 ArrayCollection에 항목 speedObj을 추가합니다.

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 
0

이 identifyArrayCollection 일부 개체 및 speedsArrayCollection을 포함하는있는 ArrayCollection이라고 가정하면에 포함 된 개체 유형의 변수로 정의 된 ArrayCollection에는 다음과 같습니다


코드 당신이 다음하는 것이 수행 identifyArrayCollection

해야 할 일 :

for (var x:Number = 0; x < identifyArrayCollection.length; x++) 
{ 
    identifyArrayCollection.getItemAt(x).speedsArrayCollection.addItem(speedsObj); 
} 
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); 
} 
관련 문제