Votre meilleur pari utilise le « est » opérateur et utiliser quelque chose comme:
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
}
Il existe cependant un problème avec cette approche. Parce que "est" retournera vrai pour toutes les classes descendantes, vous devez mettre toutes les classes descendantes avant leurs ancêtres - Liste doit venir avant ListBase. Cela peut causer des ennuis.
// This is important to remember:
var mc:MovieClip = new MovieClip();
trace(mc is Sprite); // true
Il y a une autre option pour les cas où vous souhaitez objets d'être membre d'une classe spécifique (et non une classe descendante): vous pouvez utiliser la propriété constructeur de l'objet et utiliser une instruction 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;
}
}
juste fait avec "est": var b: Booléen = arr [i] est TextInput, est-ce le seul et le meilleur moyen de le faire? –
ObjectUtil.getClassInfo ( – cloverink