Adobe Flex; ciclo di inciciação componente.


Vai alla documentazione dal sito di Adobe, ho notato uno astratto molto interessante che parla del ciclo di attuazione / creazione di ogni componente della nostra applicazione, è incredibile come ogni singolo pulsante per essere inseriti in un contenitore ha una dozzina di procedimenti fino a quando non viene attivato l'evento creationComplete. Per coloro che hanno già creato / componente tramite uno script di azione esteso già sa cosa voglio dire, ma ancora mettere la spiegazione.

Sto parlando solo del processo di aggiunta di un pulsante come un bambino di un contenitore (Box) con

il semplice codice:

  1: / / Creazione di una scatola, un pulsante, impostare l'etichetta e aggiungere come figlio 
   Box(); 2: var boxContainer: Box = new Box (); 
  3: 
   Button() 4: var b: Button = new Button () 
  5: 
  ; 6: b.label = "Invia"; 
  7: 
  8: boxContainer.addChild (b); 

La flex, procedere come segue:

1. Si chiama il costruttore dei componenti (nuovo Box e quindi nuovi pulsanti)

2. Chiamato il regolatore (b.label =) e aggiornato l'intero componente (e spesso sono chiamati ad aggiornare i metodi per definire l'intero layout: invalidateProperties (), invalidateSize (), o invalidateDisplayList ())

3. Aggiunge come un bambino (figlio) della scatola. Qui il flex rende la maggior parte del lavoro, eseguendo il seguente ordine:

4. Definisce le proprietà del genitore componente fare riferimento al suo "contenitore".

5. Calcola e definisce lo stile / "stile" di tutto il componente.

6. Spara preinitialize caso di componente.

7. Richiama il metodo createChildren () del componente.

8. Richiama i metodi invalidateProperties (), invalidateSize (), e invalidateDisplayList () per forzare per essere alimentate / Chiama i metodi commitProperties (), misura (), o updateDisplayList () nel prossimo evento rinuncia. L'unica eccezione a questi eventi è che il flex misura non chiamare il metodo () quando il "utente / programmatore 'definisce l'altezza e la larghezza del componente.

9. Spara a caso inizializzare il componente. A questo punto tutti da bambino (per bambini), il componente viene inizializzato, ma la componente non è stato ancora adeguatamente definiti dalla loro dimensione, trasformati o il layout. Questo evento può essere utilizzato per definire / attuare le procedure applicate negli extra componente prima che sia completamente trasformati.

10. Spara childAdd nel caso in cui il "padre" / "madre".

11. Spara inizializzare l'evento della sua componente "padre" / "madre".

12. Nel corso dei prossimi caso la rinuncia flex rende le seguenti azioni:

  • - Invito i metodi nel seguente ordine:
  • commitProperties ();
  • misura ();
  • layoutChrome ();
  • updateDisplayList ();
  • -- Infine viene attivato in caso updateComplete componente.

13. La flex, quindi questo processo può anche innescare eventi di rendering (il rendering) se i metodi commitProperties (), misura (), o updateDisplayList () sono attuate / chiamato con i metodi invalidateProperties (), invalidateSize (), o invalidateDisplayList ().

14. Dopo l'ultimo caso a essere chiamato rinuncia, la flex esegue le seguenti azioni:

  • - Inserire il componente visibile (. Visible = true;).
  • - Spara in caso creationComplete componente. Il componente è stato progettato e trasformati per l'impaginazione. Questo evento è attivato solo una volta e solo quando il componente è stato creato.
  • - Spara in caso updateComplete componente, questo evento è attivato quando ogni modifica delle impostazioni del componente, come ad esempio il layout, posizione, dimensione o di qualsiasi cambiamento di caratteristiche visive.

La maggior parte del lavoro di configurazione, la definizione, e il rendering di un componente è che questo è aggiunto ad un contenitore (metodo addChild ()), perché mentre il componente non viene aggiunto a un contenitore, il flex non può avere la tua misura , Impostare la proprietà "in-line" / "ereditare" o disegnare sullo schermo.

Capire questi passaggi sono essenziali per conoscere le proprietà e le operazioni che vengono effettuate nello stabilimento di un componente. Aiutaci a capire meglio il motivo per cui a volte ci sono alcuni errori nel nostro codice e di comprendere il processo di creazione di un componente, che è molto utile per la creazione a me e / o estendere la nostra componente.

Articolo originale qui (EN)

Abbracciare + + abbraccio.

immagine Questo articolo è disponibile in formato PDF per il download.

versione pdf temporaneamente non disponibile.
Lascia un tuo commento o un Trackback

4 Commenti

  1. Ved
    2 maggio 2008 a 3:54 pm | Permalink

    Ragazzo, come lei ha scoperto tutto questo (domanda, per non accento) ...

    =)

  2. 2 maggio 2008 a 5:07 pm | Permalink

    Ved Hey there! Ero disperata con un errore che ha dovuto creare un componente, e non mi sento tanto a proprio agio nel trattare con questi componenti, pricipalmente a trattare con loro in un "libraryProject" Ho cercato di trovare ulteriori informazioni su come l'attuazione di lavori e poi come nulla sfogliare la documentazione di Adobe è stata vi ho trovato questo, e riflettere sul seguente link:

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

    titolo:
    "A proposito del ciclo di vita di un'istanza di componente"

    :)

    Per me personalmente ha aiutato molto, perché è stato perdersi in testa con uno stupido errore ...

    Ved abbraccio!

  3. 3 maggio 2008 a 1:10 AM | Permalink

    Un giorno ho ancora credo ds alcune linee che si screveu Mario ...

    E ci Ved? bellezza?

    Abbracciare + + abbraccio

  4. Ved
    5 maggio 2008 a 3:53 pm | Permalink

    Hey there, le osservazioni di Mario svolta come pub! Ville bellezza? Il cameriere: inviare uno più freddo birra!

    =))

Lascia un commento

La tua email non viene mai pubblicato o condiviso. I campi obbligatori sono contrassegnati con un *