2010년 4월 1일 목요일

numChildren & removeChildAt()

numChildren

 

객체의 자식 수를 반환한다. 예제에서는 seedBox 객체에 생성된 100개의 seed 객체가

자식이 된다. seedBox아래에 100개의 seed 객체가 있는것이다.

 

 

 

removeChildAt()

 

DisplayObjectContainer 자식 목록에서 지정된 index 위치에 있는 자식 DisplayObject를

제거한다. 최하위 인덱스 위치(0)의 자식을 제거할 때 목록에 있는 나머지 모든 자식 객체가 한 자리씩 아래로 이동한다.

 

 

 

음...무슨말이지 잘 모르겠다. 그렇다면...그림을 그려보며 이해해보자.

 

 

 위에서 보면 Container의 객체에는 6개의 자식 객체가 있다.

 

Container.numChilren은 제일 첫번째 자식 객체를 가킨다.

 

numChilren(1) = childAt(0) 이다.  

 

코드로 살펴보자

 

[code as3]
private function removeAllChildren():void
    {
        while(seedBox.numChildren)
        {
            seedBox.removeChildAt(0);
        }
    }
[/code]

 

코드에서 seedBox 는 그림의 Container에 해당한다. 그럼 코드를 분석해보자.

seedBox 에 있는 객체를 몽땅 지우라는 것이다. 음...좀더 자세히 분석해보자.

 

seedBox 에는 많은 자식 객체가 있을 것이다.

그 자식 객체가 있을 동안, 괄호안의 내용을 실해하라는 뜻이다. 반복문안의 실행문을 보자.

 

seedBox 안에 있는 자식객체의 제일 첫번째 객체를 remove(제거)하라는 것이다.

그럼, 첫번째 객체를 제거했으니 두번째에 있는 객체가 다시 첫번째 객체로 될것 이다.

 

그럼 또 제거한다. 그럼 그 다음 두번째 객체가 다시 첫번째 객체가 되는 것이다.

그럼 다시 또 첫번째 객체를 제거한다.

 

이것이 반복되어 결국 seedBox 의 자식객체는 전부 삭제될 것이다.

 

# removeChildAt(index : int) : 자식 객체 삭제

 

매개변수- index : 제거할 자식 객체의 인덱스

 

# addChildAt( child : DisplayObject, index : int ) : 자식 객체 추가

 

매개변수 - child : DisplayObject  - 자식으로 추가할 객체

             - index : int - 추가할 인덱스 위치

 

 

댓글 없음:

댓글 쓰기