Сейчас столкнулся такой проблемкой: у меня есть код, который составляет дерево экранных объектов начиная от заданного в параметре... ну не суть важно. Проблема в том, что не понимаю как определить класс объекта и определить наследует ли этот класс от какого-либо другого. В параметрах если указать дисплэй объект, как мне и надо, он ругается мол у дисплей объекта нет свойства numOfChild и метода getChildAt, а если передать битмап, так и вовсе ошибка из за того, что битмапы не являются контейнерами в принципе и не имеют вышеуказанных свойства и метода. А как прямо в коде проверить является ли объект контейнером или не является? И как определить точный тип? Помимо проверки наличия свойства numOfChild? Ну и в случае наследования от спрайта, битмапа, шейпа и т.п. как определить от чего наследовали?

Код AS3:
public function СоздатьДеревоСпрайтов (ЭкранныйОбъект) {
var S:String=ЭкранныйОбъект.name + "(";
for (var i:int=0; i<ЭкранныйОбъект.numChildren; i++) {
S+=СоздатьДеревоСпрайтов(ЭкранныйОбъект.getChildAt(i));
}
S+=")";
return (S);
}