Ваша лучшая ставка - использовать оператор "is" и использовать что-то вроде:
for( var i:int = 0; i < componentArr.length; i++ )
{
var comp:UIComponent = componentArr[ i ];
if( comp is DataGrid )
// Handle DataGrid functionality here.
else if (comp is DropDown )
// Handle DropDown here
}
Однако у этого подхода есть одна проблема. Поскольку is будет возвращать true для всех классов-потомков, вы должны поместить все классы-потомки перед их предками - List должен предшествовать ListBase. Это может вызвать некоторые неудобства.
// This is important to remember:
var mc:MovieClip = new MovieClip();
trace( mc is Sprite ); // true
Существует еще одна опция для случаев, когда вы хотите, чтобы объекты были членами определенного класса (а не класса-потомка): вы можете использовать свойство constructor объекта и использовать оператор switch.
for( var i:int = 0; i < componentArr.length; i++ )
{
var klass:Class = componentArr[ i ].constructor;
switch( klass )
{
case DataGrid:
// Handle DataGrid
break;
case Text:
// Handle Text
break;
case NumericStepper:
// Handle NumericStepper
break;
default:
// Handle default
break;
}
}