Adobe Flex; inciciação cycle de la composante.


Aller à la documentation sur le site d'Adobe, j'ai remarqué un résumé très intéressant que les pourparlers sur le cycle de mise en œuvre / création de chaque composante de notre application, il est incroyable de voir comment chaque bouton à ajouter à un conteneur d'une douzaine de procédure jusqu'à ce qu'il soit déclenché l'événement creationComplete. Pour ceux qui ont déjà créé / composant par l'intermédiaire d'un script d'action étendu sait déjà ce que je veux dire, mais encore, l'explication.

Je parle uniquement du processus de l'ajout d'un bouton comme un enfant à un conteneur (Boîte) avec

le code simple:

  1: / / Créer une boîte, un bouton, ensemble l'étiquette et d'ajouter que la protection des enfants 
   Box(); 2: var boxContainer: Box = new Box (); 
  3: 
   Button() 4: var b: Button = new Button () 
  5: 
  ; 6: b.label = "Envoyer"; 
  7: 
  8: boxContainer.addChild (b); 

Le flex, procédez comme suit:

1. Il est appelé le fabricant (nouveau Box et puis nouveau bouton)

2. Surnommé le setter (b.label =) et mis à jour l'ensemble du composant (et, souvent, sont appelés à mettre à jour des méthodes pour définir l'ensemble de la mise en page: invalidateProperties (), invalidateSize (), ou invalidateDisplayList ())

3. Ajoute comme un enfant (fils) de la boîte. Ici, la rend plus flexible du travail, l'exécution de l'ordre suivant:

4. Définit la propriété de l'élément parent de faire référence à son "conteneur".

5. Calcule et définit le style / "style" de l'ensemble du composant.

6. Shoot preinitialize cas de la composante.

7. Appelle la méthode createChildren () des composants.

8. Attire les méthodes invalidateProperties (), invalidateSize (), et invalidateDisplayList () à la force pour être tiré / Appel des méthodes commitProperties (), mesure (), ou updateDisplayList () dans le prochain événement de remise. La seule exception à ces événements est que le flex mesure ne fait pas appel de la méthode () quand l'utilisateur / programmeur "définit la hauteur et la largeur de l'élément.

9. Shoot cas initialiser le composant. À ce stade tous les enfants (enfants) le composant est initialisé, mais la composante n'a pas encore été bien définis par leur taille, ou du traitement de votre mise en page. Cet événement peut être utilisé pour définir et mettre en oeuvre des procédures supplémentaires en composant avant qu'il ne soit entièrement traitée.

10. Shoot childAdd dans le cas où le «père» / «parent».

11. Shoot initialiser le cas de ses «père» / «parent».

12. Au cours de la prochaine remise de la manifestation fait fléchir les actions suivantes:

  • - Appeler les méthodes dans l'ordre suivant:
  • commitProperties ();
  • mesure ();
  • layoutChrome ();
  • updateDisplayList ();
  • -- Enfin est déclenché en cas updateComplete composant.

13. Le flex, alors ce processus peut aussi déclencher des événements de rendu (rendu) si les méthodes commitProperties (), mesure (), ou updateDisplayList () sont mis en œuvre / appelé par les méthodes invalidateProperties (), invalidateSize (), ou invalidateDisplayList ().

14. Après la dernière manifestation appelée à être remise, le Flex effectue les actions suivantes:

  • - Mettre le visible (. Visible = true;).
  • - Shoot en cas creationComplete composant. Le composant est conçu et traité pour la mise en page. Cet événement est déclenché une seule fois et uniquement lorsque le composant est créé.
  • - Tirez sur les updateComplete événement dans le composant, cet événement est déclenché lorsque les paramètres sont modifiés le composant, tels que la mise en page, position, la taille ou tout changement dans les caractéristiques visuelles.

La plupart des travaux de la configuration, la définition, et le rendu d'un élément est que cela est ajouté à un conteneur (méthode addChild ()), alors que le composant n'est pas ajouté à un conteneur, le Flex ne peut pas avoir votre taille , Définir la propriété "en ligne" / "hériter" ou de dessiner sur l'écran.

La compréhension de ces mesures sont essentielles pour connaître les propriétés et les opérations qui sont réalisées dans la mise en place d'un composant. Aidez-nous à mieux comprendre pourquoi nous avons parfois des erreurs dans notre code et de comprendre le processus de création d'un composant, qui est très utile pour créer leur pour moi et / ou d'étendre notre propre composante.

Article original ici (EN)

Serrer dans ses bras.

image Cet article est disponible en format PDF à télécharger.

version pdf temporairement indisponible.
Laissez un commentaire ou laisser un Trackback

4 Commentaires

  1. Ved
    2 mai 2008 à 3:54 pm | Lien permanent

    Boy, comme vous l'avez découvert tout cela (question, sans accent) ...

    =)

  2. 2 mai 2008 à 5:07 pm | Lien permanent

    Ved Hey there! J'ai été désespérée avec une erreur qui avait à créer un composant, et je ne me sens pas autant à l'aise dans le traitement de ces composants, pricipalmente de les traiter dans un "libraryProject" J'ai essayé de trouver plus d'informations sur la mise en œuvre de travaux et puis rien de tel parcourir la documentation de l'adobe a été là, j'ai trouvé cela, et de réfléchir sur le lien suivant:

    http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_advanced_2.html # 203434

    intitulé:
    "A propos de la composante du cycle de vie des instanciations"

    :)

    Pour moi personnellement beaucoup aidé, car il a été se perdre dans la tête avec un stupide erreur ...

    Ved hug!

  3. 3 mai 2008 à 1:10 am | Permalink

    Un jour, je crois que j'ai encore ds quelques lignes que vous screveu Mario ...

    Et il y Ved? la beauté?

    Serrer dans ses bras

  4. Ved
    5 mai 2008 à 3:53 pm | Lien permanent

    Salut, les commentaires de Mario tournant comme pub! Villas beauté? Le serveur: envoyer une bière froide!

    =))

Laisser un commentaire

Votre e-mail n'est jamais publié ou partagé. Les champs obligatoires sont marqués d'un *