In continuazione con il tutorial ...
Questa parte è già stato incluso nel libro disponibile per il download qui ...
Prendiamo il seguente codice in un pacchetto correttamente revisione:
pacchetto di prova ( flash.events.Event importazione; mx.containers.Panel importazione; mx.controls.Label importazione; mx.events.ChildExistenceChangedEvent importazione; mx.events.FlexEvent importazione; public class Test estende Pannello ( / / Mettete l'immagine come incorporare (essere acquisiti e definiti nel nostro applicativo / / Variabile con immediatamente inferiore (iconImg) disponibile in forma di classe. [Embed ( "flexBtn.png")] var iconImg privato: Classe; / * Questa proprietà sarà disponibile come elitura / scrittura per esempio: meuPainel.nomePessoal * / [Bindable]
var privato _nomePessoal: String; / / Disponibile in dataCriacao in modalità read-only; meuPainel.dataCriacao var privato _dataCriacao: String; / / Variabile temporaneamente utilizzato per conoscere le ore / minuti / secondi utilizzati in basso var dati privati: data = new Data; funzione pubblica di test () ( / / Definire il pannello presente. width = 270; presente. altezza = 270; presente. x = 0; presente. y = 0; / / Aggiungere il eventListner presente. addEventListener (FlexEvent.CREATION_COMPLETE, creato, false, 0, true); ) creato privato funzione (EVT: FlexEvent): void ( / * Impostare l'ora esatta della creazione del pannello, usando la data in questo se i dati variabili d * / _dataCriacao = dados.getHours () ":" dados.getMinutes () ":" dados.getSeconds (); / / Aggiungere l'icona al pannello presente. titleIcon = iconImg; / / Controllare se il nomePessoal è stata definita if (! _nomePessoal) ( / * Se il nome non è stato dato, noi dare un nome temporaneo, il caso sarà dato come: Test Panel "numero" in cui il numero è un valore casuale compreso tra 0 e 15, questo numero è raggiunto attraverso Math.floor (Math.ramdom () * 15) * / _nomePessoal = "Panel Test" Math.floor (Math.random () * 15); ) / * Usiamo una etichetta che indica il tempo e la nomePessoal della creazione del pannello, questo Etichetta scompare non appena i bambini sono aggiunti al gruppo, in modo da utilizzare uno evenListner * / var LBL: etichetta = new Etichetta; lbl.name = "status"; lbl.x = 0; lbl.y = 0; / / Definire il testo lbl.text = _nomePessoal "creato:" dataCriacao; / / Aggiungere al pannello come un bambino presente. addChild (LBL); / / Evento Lištná a sapere quando un bambino è stato aggiunto al gruppo per / / Si può rimuovere l'etichetta messo in cima. presente. addEventListener (ChildExistenceChangedEvent.CHILD_ADD, rimuovere, false, 0, true); / / Spedizioni caso finito personalizzato presente. dispatchEvent (nuovo evento ( "btnsProntos")); / / Rimuovere il eventListner terminao poiché essere attivato solo una volta. presente. removeEventListener (FlexEvent.CREATION_COMPLETE, creato); ) privato funzione elimina (EVT: ChildExistenceChangedEvent): void ( / / Funzione per rimuovere l'etichetta con il nome e l'ora della creazione, questo accade quando / / Aggiunto un figlio al panel. / / Rimuovere il bambino 0 (LBL bambino è utilizzato, il numero è pari a zero perché nulla / / Più è stato aggiunto al panel) presente. removeChildAt (0); / / Rimuovere l'evento aggiunto Lištná altrimenti se più di un bambino / / Questa funzione semper rimuovere l'ultimo inserito presente. removeEventListener (ChildExistenceChangedEvent.CHILD_ADD, elimina); ) / * Solo come desidera che il dataCriacao di proprietà è di sola lettura, abbiamo solo la funzione di leggere questo valore, con l'ottenere, chiamato "getter * / funzione pubblica ottenere dataCriacao (): String ( _dataCriacao ritorno; ) / * _nomePessoal Come vuole la proprietà sia di leggere o di scrivere, Devo dire alla nostra classe che può effettuare o ricevere dal contenuto e che variabile, facendo questo con le funzioni get e set ** / funzione pubblica ottenere nomePessoal (): String ( _nomePessoal ritorno; ) / / Get come una stringa nome funzione pubblica nel settembre nomePessoal (nome: String): void ( _nomePessoal = nome; ) ) ) In questo esempio di cui sopra ha utilizzato una classe più complessa, ma come è discusso adeguatamente sarà abbastanza facile da capire. In questo esempio si può comprendere i seguenti elementi, un gruppo viene utilizzato come base, (si estende) e le loro proprietà ... dopo che viene automaticamente aggiunto esemplificando uno titleIcon attributi ereditati dal padre (pannello).
Quali sono stati poi aggiunti alcuni nuovi attributi al nostro personale Pannello, come la dataCriacao e la nomePessoal, dove sia possibile accedere per leggere i suoi valori:
traccia (meuPainel.nomePessoal); traccia (meuPainel.dataCriacao); e la nomePessoal può essere definita:
meuPainel.nomePessoal = "nome del mio pannello personale"; Questa lettura / scrittura di questi valori è possibile solo a causa della getter'se regolatore che sono disponibili nella nostra classe's, che viene utilizzato per entrare in:
traccia (meuPainel.nomePessoal);
e settembre:
meuPainel.nomePessoal = "nome del mio pannello personale";
In questo esempio vediamo anche oltre l'uso di alcune funzioni matematiche (piano e ramdom) che può essere letta da parte della classe Math. Poi aggiungere una etichetta per il pannello quando si è creato con il tempo e la nomePessoal della sua creazione, e di aderire ad eventListener un'etichetta che scompaiono quando un bambino è aggiunto al gruppo. Non dimenticare che sono stati rimossi eventListeners non provocare dei conflitti.
Per testare questa classe solo fare:
mx.controls.Button importazione;
teste.teste importazione;
mx.controls.Alert importazione;
var privato myPanel: prova = new prova;
privato funzione init (): void (
myPanel.addEventListener ( "btnsProntos", finito);
/ / = MyPanel.nomePessoal "Pannello di GRÜN" può o non può impostare il nome personale del nostro pannello.
addChild (myPanel);
)
privato funzione finito (EVT: Event): void (
Alert.show ( "Pannello di icona e complete.")
)
addChildMe privato function (): void (
var temp: = new Button;
myPanel.addChild (temp);
)
Qui si chiama la funzione init, il nostro pannello è creato sul palco, con il nome e l'ora di creazione ... è chiamata la funzione addChildMe un pulsante sarà aggiunto al nostro pannello, e che esisteva etichetta verrà automaticamente rimossa. E finalmente pronta la tua classe che viene creato non meno uno pannello personalizzato, e senza fare tanto già utilizzati metodi e parametri ereditaria, e la composizione che è stato precedentemente spiegato ..
Continua ...
Abbracciare abbraccio.










Un commento
affrontare queste stesse forze guadagnato questo tutorial aiutare anche me ...