Package | mx.core |
Classe | public class ComponentDescriptor |
Héritage | ComponentDescriptor Object |
Sous-classes | UIComponentDescriptor |
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
La plupart des balises d’un fichier MXML décrivent une arborescence d’objets UIComponent. Par exemple, la balise <mx:Application>
représente un objet UIComponent et ses commandes et conteneurs enfant sont tous des objets UIComponent.
Le compilateur MXML compile chacune de ces balises MXML dans une instance UIComponentDescriptor. Pour être précis, le compilateur MXML génère automatiquement une structure de données ActionScript qui correspond à une arborescence d’objets UIComponentDescriptor.
Lors de l’exécution, la méthode createComponentsFromDescriptors()
de la classe Container utilise les informations des objets UIComponentDescriptor dans le tableau childDescriptors
du conteneur pour créer les objets UIComponent réels qui sont les enfants du conteneur, ainsi que des descendants plus éloignés. Selon la valeur de la propriété creationPolicy
du conteneur, les descendants peuvent être créés au démarrage de l’application, lorsqu’une partie du composant est sur le point de devenir visible, ou lorsque le développeur de l’application appelle manuellement la méthode createComponentsFromDescriptors()
.
Généralement, il n’est pas nécessaire de créer les instances ComponentDescriptor ou UIComponentDescriptor manuellement. Vous pouvez accéder à celles que le compilateur MXML génère automatiquement via le tableau childDescriptors
de la classe Container.
Eléments de l’API associés
mx.core.Container.childDescriptors
mx.core.Container.creationPolicy
mx.core.Container.createComponentsFromDescriptors()
Propriété | Défini par | ||
---|---|---|---|
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
document : Object
Référence à l’objet de document dans lequel le composant doit être créé. | ComponentDescriptor | ||
events : Object
Objet contenant des paires nom/valeur pour les gestionnaires d’événement du composant, tels que spécifiés dans le code MXML. | ComponentDescriptor | ||
id : String
Identifiant du composant, tel que spécifié dans le code MXML. | ComponentDescriptor | ||
properties : Object [lecture seule]
Objet contenant des paires nom/valeur pour les propriétés du composant, telles que spécifiées dans le code MXML. | ComponentDescriptor | ||
propertiesFactory : Function
Fonction qui renvoie un objet contenant des paires nom/valeur pour les propriétés du composant, telles que spécifiées dans le code MXML. | ComponentDescriptor | ||
type : Class
Classe du composant, telle que spécifiée dans le code MXML. | ComponentDescriptor |
Méthode | Défini par | ||
---|---|---|---|
ComponentDescriptor(descriptorProperties:Object)
Constructeur. | ComponentDescriptor | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Invalide la propriété properties mise en cache. | ComponentDescriptor | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la chaîne « ComponentDescriptor_ » plus la valeur de la propriété id. | ComponentDescriptor | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
document | propriété |
public var document:Object
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Référence à l’objet de document dans lequel le composant doit être créé.
Eléments de l’API associés
events | propriété |
public var events:Object
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Objet contenant des paires nom/valeur pour les gestionnaires d’événement du composant, tels que spécifiés dans le code MXML.
Par exemple, si vous écrivez
<mx:DataGrid id="dg" initialize="fetchData(); initDataGrid();" change="changeHandler(event);"/>
alors la propriété events
du descripteur est l’objet
{ initialize: "__dg_initialize", change: "__dg_change" }
La propriété event
a la valeur null
si aucun gestionnaire d’événements MXML n’est spécifié pour le composant.
Les chaînes "__dg_initialize"
et "__dg_change"
correspondent aux noms des méthodes de gestionnaire d’événement générées automatiquement par le compilateur MXML. Le corps de ces méthodes contient les instructions ActionScript spécifiées en tant que valeurs des attributs d’événement. Par exemple, le gestionnaire d’événement initialize
généré automatiquement est
public function __dg_initialize(event:mx.events.FlexEvent):void { fetchData(); initDataGrid(); }
Ne partez pas du principe que les gestionnaires d’événement générés automatiquement sont toujours spécifiés par leur nom. Cette situation peut évoluer dans une version future de Flex.
Cette propriété est utilisée par la méthode Container createComponentsFromDescriptors()
pour enregistrer les gestionnaires d’événement générés automatiquement à l’aide de la méthode addEventListener()
.
id | propriété |
public var id:String
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Identifiant du composant, tel que spécifié dans le code MXML.
Par exemple, si vous écrivez
<mx:TextInput id="firstName" text="Enter your first name here"/>
alors la propriété id
du descripteur est la chaîne "firstName"
.
La propriété id
a la valeur null
si aucun identifiant MXML n’est spécifié pour le composant.
La valeur de la propriété id
devient le nom d’une variable publique dans l’objet de document MXML, générée automatiquement par le compilateur MXML. La valeur de cette variable est une référence à l’objet UIComponent créé à partir de ce descripteur. C’est pourquoi vous pouvez, par exemple, faire référence à la propriété text
du contrôle TextInput sous la forme firstName.text
depuis tout emplacement du document contenant cette instance TextInput.
Si une propriété id
est spécifiée et différente de la chaîne vide, elle devient également la propriété name
de l’objet DisplayObject. Si la propriété id
n’est pas spécifiée ou vide, la propriété name
de l’objet DisplayObject reste une chaîne générée automatiquement, par exemple "Button3"
, telle que renvoyée par la méthode NameUtil.createUniqueName()
. La propriété name
est utilisée dans la génération de la chaîne renvoyée par la méthode toString()
. Il peut également être utilisé pour trouver le composant à partir de son parent en appelant la méthode getChildByName()
.
Eléments de l’API associés
properties | propriété |
properties:Object
[lecture seule] Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Objet contenant des paires nom/valeur pour les propriétés du composant, telles que spécifiées dans le code MXML.
Par exemple, si vous écrivez
<mx:TextInput width="150" text="Hello"/>
alors la propriété properties
du descripteur est l’objet
{ width: 150, text: "Hello" }
La propriété properties
a la valeur null
si aucune propriété MXML n’est spécifiée pour le composant. Dans ce cas, le composant utilise les valeurs par défaut des propriétés.
Cet objet est créé par l’appel de la fonction spécifiée par la propriété propertiesFactory
, puis mis en cache pour les accès ultérieurs. Toutefois, si un objet Repeater produit plusieurs instances d’un composant à partir du même descripteur, une nouvelle copie de l’objet properties
doit être créée pour chaque instance de composant. Ainsi, les instances ne partagent pas des valeurs de propriétés correspondant à des tableaux ou des références d’objet. Pour ce faire, l’objet Repeater appelle la méthode invalidateProperties()
sur le descripteur.
Implémentation
public function get properties():Object
Eléments de l’API associés
propertiesFactory | propriété |
public var propertiesFactory:Function
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Fonction qui renvoie un objet contenant des paires nom/valeur pour les propriétés du composant, telles que spécifiées dans le code MXML.
Par exemple, si vous écrivez
<mx:TextInput width="150" text="Hello">
alors la propriété propertiesFactory
du descripteur est la fonction :
function():Object { return { width: 150, text: "Hello" }; }
La propriété propertiesFactory
a la valeur null
si aucune propriété MXML n’est spécifiée pour le composant. Dans ce cas, le composant utilise les valeurs par défaut des propriétés.
La raison pour laquelle propertyFactory
est une fonction renvoyant un objet plutôt qu’un objet réel est de permettre un « développement » par incréments de l’arborescence des objets ComponentDescriptor. Si tous les descripteurs de l’arborescence de descripteurs du document étaient créés au lancement, le temps de démarrage serait plus important.
La propriété properties
renvoie un objet mis en cache produit par cette fonction de fabrique.
Remarque : les gestionnaires d’événements tels que click="doSomething();"
apparaissent dans l’objet events
et non dans l’objet properties
.
Eléments de l’API associés
type | propriété |
public var type:Class
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Classe du composant, telle que spécifiée dans le code MXML.
Par exemple, si vous écrivez
<mx:TextInput/>
alors la propriété type
du descripteur est la classe mx.controls.TextInput.
La propriété n’a jamais la valeur null
pour les objets ComponentDescriptor créés par le compilateur MXML, car chaque balise MXML a un nom de balise tel que mx:TextInput.
La correspondance entre une balise MXML et sa classe correspondante est déterminée par l’espace de nom XML et le fichier « manifeste » (s’il existe) associé à cet espace de nom. Par exemple, l’espace de nom Flex standard http://www.adobe.com/2006/mxml
représentée par le préfixe mx: est associé (dans le fichier flex-config.xml) avec le fichier manifeste mxml-manifest.xml. Ce fichier comporte la balise
<component id="TextInput" class="mx.controls.TextInput"/>
qui fait correspondre le nom de la balise mx:TextInput à la classe mx.controls.TextInput. Notez que l’utilisation d’un fichier manifeste permet aux composants d’un même espace de noms XML d’établir la correspondance à des classes de plusieurs packages ActionScript.
ComponentDescriptor | () | Constructeur |
public function ComponentDescriptor(descriptorProperties:Object)
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Constructeur.
ParamètresdescriptorProperties:Object — Objet contenant des paires nom/valeur pour les propriétés de l’objet ComponentDescriptor, telles que type , id , propertiesFactory et events .
|
invalidateProperties | () | méthode |
public function invalidateProperties():void
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Invalide la propriété properties
mise en cache. La prochaine fois que vous lisez la propriété properties
, les propriétés sont régénérées à partir de la fonction spécifiée par la valeur de la propriété propertiesFactory
.
toString | () | méthode |
public function toString():String
Version du langage: | ActionScript 3.0 |
Version du produit: | Flex 3 |
Versions du moteur d’exécution: | Flash Player 9, AIR 1.1 |
Renvoie la chaîne « ComponentDescriptor_ » plus la valeur de la propriété id
.
String — Chaîne « ComponentDescriptor_ » plus la valeur de la propriété id .
|
Tue Jun 12 2018, 09:30 AM Z