Obtenir le type de flex
quelqu'un peut-il me dire comment je peux identifier le type d'un objet en flex? En particulier, j'ai un tableau où je stocker plusieurs types (mais tous les composants uicomponents) maintenant que j'évaluer le tableau, j'aimerais savoir si j'ai un Contrôle TextInput ou un composant RadioButton. Quelqu'un a une idée?
Merci d'avance
fait "est": var b : Boolean = arr[i] est TextInput, est-ce la seule et la meilleure façon de le faire?
ObjectUtil.est(
ObjectUtil.est(
OriginalL'auteur Sebastian Müller | 2009-06-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tester par rapport à une classe particulière en utilisant le "est" de l'opérateur ou vous pouvez utiliser le flash.utils.getQualifiedClassName() (vous passer de votre objet) - qui sera de retour une chaîne de nom de classe entièrement qualifié.
OriginalL'auteur Branden Hall
SON TRAVAIL 🙂
Suivants est la façon dont j'ai résolu ce problème
OriginalL'auteur
Essayez d'utiliser le "className" de la propriété.
Il devrait revenir "TextInput" ou "Bouton", selon le cas
OriginalL'auteur
L'opérateur "est" représente une option.
Puis il y a l'opérateur instanceof, qui pourrait ou pourrait ne pas être utile en fonction de la situation.
Il ya aussi le ObjectUtil classe avec une méthode statique est. Celle-ci rentre plus que juste de l'objet nom de la classe.
Opérateur "typeof" n'est malheureusement inutile pour les classes.
Et, comme Branden Salle déjà suggéré, flash.utils.getQualifiedClassName().
OriginalL'auteur bug-a-lot
voici quelques simples pseudo-code qui montre comment utiliser la
is
opérateur pour ce que vous voulez faire:Bon point, j'ai juste essayé de le rendre aussi souple que possible. En fait, si vous savez que vous n'allez en composants uicomponents ou objets displayobject, alors vous pourriez utiliser.
OriginalL'auteur Eric Belair
La
is
opérateur essais de compatibilité, oui. De la documentation,is
:D'autres opérateurs dans cette catégorie sont
typeof
(qui renvoie une représentation sous forme de chaîne d'une primitive),instanceof
(similaire àis
, mais fait abstraction de l'interface de compatibilité) etas
. Un grand et la liste complète des opérateurs ActionScript est disponible ici.Espère que cela aide!
OriginalL'auteur Christian Nunciato
Votre meilleur pari est d'utiliser le "est" de l'opérateur et d'utiliser quelque chose comme:
Il y a un problème avec cette approche, cependant. Parce que "est" renverra 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 quelques désagréments.
Il ya une autre option pour les cas où vous souhaitez que les objets d'un membre d'une classe spécifique (et non pas un descendant de la classe): vous pouvez utiliser le constructeur de la propriété de l'objet et de l'utilisation d'une instruction switch.
OriginalL'auteur cwallenpoole