원문 : 지돌스타 블로그 http://blog.jidolstar.com/308
말이 좀 어렵다.
가령 이런거다.
var childIsButton:Boolean = this.getChildAt(0) is mx.controls.Button;
을 했다고 하자.
그
러니깐 자식 컴포넌트가 Button인지 확인하는 작업인데… 만약 자식이 Button이 아닌 다른 Label, Chart등이
올 수 있다고 하자. 이와 같은 형태로 프로그램을 만들면 Button이 없는 경우에도 버튼이 프로그램상에 포함이 되어진다. 즉,
쓰지 않을 버튼인데 프로그램에 포함되므로 쓸데없이 프로그램 크기가 커질 수 있다.
그럼 이러한 경우에는 어떻게 할까?
바로 getQualifiedClassName()함수를 이용하면 되겠다.
var child:DisplayObject = getChildAt(0);
var childClassName:String = getQualifiedClassName(child);
var childIsButton:Boolean = childClassName == “mx.controls::Button”;
위
의 경우 getChildAt(0)로 자식을 얻어온 뒤, 이 자식의 Class이름을 얻어온다. 이 클래스가 Label이면
mx.controls::Label 이 될 것이다. 바로 아래를 보자 “mx.controls::Button”으로 비교를 하고 있다.
앞서 말했던 코드와 큰 차이점은 Button이 프로그램상에 포함이 되어 있지 않아도 해당 자식 컴포넌트가 Button인지 확인할 수 있다는 점이다.
이 방법을 이용하면 프로그램을 크기를 줄이는데 큰 역할을 할 수 있을것이다.