[as3.0]라이브러리에서 꺼내온 무비클립의 child갯수는 무조건 1개인가요?
진나
3.0 캐초보 매가 질문 드립니다..
var threeMc:ThreeMc = new ThreeMc();
threeMc.x = 50;
threeMc.y = 50;
addChild(threeMc);
trace(threeMc.numChildren); //output : 1
trace(threeMc.getChildAt(0)); //output : [object Shape]
threeMc.removeChildAt(0);
trace(threeMc.numChildren); //output : 1
ThreeMc라고 클래스 이름을 지정해준 무비클립을 라이브러리에서 꺼내옵니다.
그리고 스테이지에 addChild한 후 threeMc의 자식들을 찍어보면 1개가 나옵니다.
threeMc속에는 child를 추가한 적이 없는데 말이죠...
그리고 child 0번 놈을 remove해줘봤습니다.
그래도 바퀴벌레처럼 끈질기게 남아있네요.var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xffcccc);
circle.graphics.drawCircle(100, 100, 10);
circle.graphics.endFill();
addChild(circle);
trace(circle.numChildren); //output : 0
의심이 나서 저렇게 해보니 이번엔 child가 0이라고 나옵니다..저의 돌머리를 아무리 굴려봐도 모르겠습니다 ㅡ,.ㅡ
ThreeMc는 MovieClip을 상속받습니다. 그런데 위에서 테스트 해본 것처럼child 0번에 Shape object가 자리잡고 있습니다.
removeChild를 해줘도 화면에 나타나는 그림은 지워져도 여전히 numChildren은 1이라고 남아있구요..
ThreeMc가 Shape을 상속받아도 결국 같은 결과가 나옵니다.
결국 그렇다면, 라이브러리에 있는 놈을 스테이지에 갖다 붙이게 되면, 항상 그 놈의 자식 0번은 Shape object가 자리잡고 있는
겁니까?
이유가 궁금해 집니다 ㅠ_ㅠ 고수님들의 많은 조언 부탁드립니다.
-
화가마
네 그렇더군요. removechildat(0) 하고 나서 numchildren을 찍어봐도 1이 나왔던 건 제가 실수해서 잘못 알았나봐요 -_- shape때문에 그렇습니다... 어제 도와주신 수다님 감사 ㅠㅠ
-
하람
빈무비클립이 아니고 shape 하나 그려 넣으신거 아닌가요?