Tutorial Action Script 3 - 011 Tutorial azione Script 3 - 011


Em continuação com o tutorial… In continuazione con il tutorial ...

Esta parte já foi incluída no livro aqui disponibilizado para download… Questa parte è già stato incluso nel libro disponibile per il download qui ...

Vejamos o seguinte código de um package devidamente comentado: Prendiamo il seguente codice in un pacchetto correttamente revisione:

 package teste pacchetto di prova 
 { ( 
 import flash.events.Event; flash.events.Event importazione; 
 import mx.containers.Panel; mx.containers.Panel importazione; 
 import mx.controls.Label; mx.controls.Label importazione; 
 import mx.events.ChildExistenceChangedEvent; mx.events.ChildExistenceChangedEvent importazione; 
 import mx.events.FlexEvent; mx.events.FlexEvent importazione; 
 public class  teste extends Panel public class Test estende Pannello 
 { ( 
 //colocamos a imagem como embed (incoporada no nosso applicativo e definida / / Mettete l'immagine come incorporare (essere acquisiti e definiti nel nostro applicativo 
 //com a variavel imediatamente em baixo (iconImg) disponivel na forma de class. / / Variabile con immediatamente inferiore (iconImg) disponibile in forma di classe. 
 [Embed( "flexBtn.png" )] [Embed ( "flexBtn.png")] 
 private var  iconImg:Class; var iconImg privato: Classe; 
 /*Esta propriedade estará disponivel como elitura/escrita por exemplo: / * Questa proprietà sarà disponibile come elitura / scrittura per esempio: 
 meuPainel.nomePessoal */ meuPainel.nomePessoal * / 
 [Bindable] 
 private var  _nomePessoal:String; var privato _nomePessoal: String; 
 //Disponivel como dataCriacao em modo de leitura apenas; meuPainel.dataCriacao / / Disponibile in dataCriacao in modalità read-only; meuPainel.dataCriacao 
 private var  _dataCriacao:String; var privato _dataCriacao: String; 
 //variavel temporaria usada para saber as horas/minutos/segundos usados em baixo / / Variabile temporaneamente utilizzato per conoscere le ore / minuti / secondi utilizzati in basso 
 private var  dados:Date = new  Date; var dati privati: data = new Data; 
 public function  teste() funzione pubblica di test () 
 { ( 
 //definimos o painel / / Definire il pannello 
 this .width=270; presente. width = 270; 
 this .height=270; presente. altezza = 270; 
 this .x=0; presente. x = 0; 
 this .y=0; presente. y = 0; 
 //adicionamos o eventListner / / Aggiungere il eventListner 
 this .addEventListener(FlexEvent.CREATION_COMPLETE, criado, false ,0, true ); presente. addEventListener (FlexEvent.CREATION_COMPLETE, creato, false, 0, true); 
 } ) 
 private function  criado(evt:FlexEvent): void  { creato privato funzione (EVT: FlexEvent): void ( 
 /*definimos a hora exacta da criação do painel, com recurso ao date, neste / * Impostare l'ora esatta della creazione del pannello, usando la data in questo 
 caso d variavel dados */ se i dati variabili d * / 
 _dataCriacao=dados.getHours()  ":"  dados.getMinutes()  ":"  dados.getSeconds(); _dataCriacao = dados.getHours ()   ":"   dados.getMinutes ()   ":"   dados.getSeconds (); 
 //adicionamos o icon ao painel / / Aggiungere l'icona al pannello 
 this .titleIcon=iconImg; presente. titleIcon = iconImg; 
 //verificamos se o nomePessoal foi definido / / Controllare se il nomePessoal è stata definita 
 if (!_nomePessoal) { if (! _nomePessoal) ( 
 /*se o nome nao tiver sido dados, damos um nome temporario, no caso será dados como: / * Se il nome non è stato dato, noi dare un nome temporaneo, il caso sarà dato come: 
 Teste Painel "numero" onde o numero será um valor aleatorio entre 0 e 15, este Test Panel "numero" in cui il numero è un valore casuale compreso tra 0 e 15, questo 
 numero é conseguido através do Math.floor(Math.ramdom()*15); */ numero è raggiunto attraverso Math.floor (Math.ramdom () * 15) * / 
 _nomePessoal= "Teste Painel "  Math.floor(Math.random()*15); _nomePessoal = "Panel Test"   Math.floor (Math.random () * 15); 
 } ) 
 /*vamos usar um label que indica o nomePessoal ea hora da ciração do painel, este / * Usiamo una etichetta che indica il tempo e la nomePessoal della creazione del pannello, questo 
 Label desaparecerá assim que forem adicionados filhos ao painel, para isso usamos Etichetta scompare non appena i bambini sono aggiunti al gruppo, in modo da utilizzare 
 um evenListner*/ uno evenListner * / 
 var  lbl:Label = new  Label; var LBL: etichetta = new Etichetta; 
 lbl.name= "status" ; lbl.name = "status"; 
 lbl.x=0; lbl.x = 0; 
 lbl.y=0; lbl.y = 0; 
 //definimos o texto / / Definire il testo 
 lbl.text=_nomePessoal   " criado em: "  dataCriacao; lbl.text = _nomePessoal   "creato:"   dataCriacao; 
 //adicionamos como child ao painel / / Aggiungere al pannello come un bambino 
 this .addChild(lbl); presente. addChild (LBL); 
 //event listner para sabermos quando foi adicionado um filho ao painel para / / Evento Lištná a sapere quando un bambino è stato aggiunto al gruppo per 
 //podermos remover o label colocado em cima. / / Si può rimuovere l'etichetta messo in cima. 
 this .addEventListener(ChildExistenceChangedEvent.CHILD_ADD, remove, false , 0, true ); presente. addEventListener (ChildExistenceChangedEvent.CHILD_ADD, rimuovere, false, 0, true); 
 //despacha o evento terminado personalizado / / Spedizioni caso finito personalizzato 
 this .dispatchEvent( new  Event( "btnsProntos" )); presente. dispatchEvent (nuovo evento ( "btnsProntos")); 
 //remove o eventListner terminao, visto que apenas será disparado uma vez. / / Rimuovere il eventListner terminao poiché essere attivato solo una volta. 
 this .removeEventListener(FlexEvent.CREATION_COMPLETE, criado); presente. removeEventListener (FlexEvent.CREATION_COMPLETE, creato); 
 } ) 
 private function  remove(evt:ChildExistenceChangedEvent): void  { privato funzione elimina (EVT: ChildExistenceChangedEvent): void ( 
 //função para remover o label com o nome e hora de ciração, isto acontece quando é / / Funzione per rimuovere l'etichetta con il nome e l'ora della creazione, questo accade quando 
 //adicionado um filho ao painel. / / Aggiunto un figlio al panel. 
 //removemos o child 0 (é o child lbl usado em cima, é o numero zero porque nada / / Rimuovere il bambino 0 (LBL bambino è utilizzato, il numero è pari a zero perché nulla 
 //mais foi adicionado ao painel) / / Più è stato aggiunto al panel) 
 this .removeChildAt(0); presente. removeChildAt (0); 
 //removemos o event listner caso contrario se forem adicionados mais que um filho / / Rimuovere l'evento aggiunto Lištná altrimenti se più di un bambino 
 //esta função vai remover sempre o ultimo inserido / / Questa funzione semper rimuovere l'ultimo inserito 
 this .removeEventListener(ChildExistenceChangedEvent.CHILD_ADD, remove); presente. removeEventListener (ChildExistenceChangedEvent.CHILD_ADD, elimina); 
 } ) 
 /*como quero apenas que a propriedade de dataCriacao seja apenas de leitura, fazemos / * Solo come desidera che il dataCriacao di proprietà è di sola lettura, abbiamo 
 apenas a função para ler esse valor, com o get, chamado getter */ solo la funzione di leggere questo valore, con l'ottenere, chiamato "getter * / 
 public function  get dataCriacao():String { funzione pubblica ottenere dataCriacao (): String ( 
 return  _dataCriacao; _dataCriacao ritorno; 
 } ) 
 /*como quero que a propriedade _nomePessoal seja quer de leitura, quer de escrita, / * _nomePessoal Come vuole la proprietà sia di leggere o di scrivere, 
 tenho que dizer à nossa classe que pode disponibilizar ou receber conteudo de/nessa Devo dire alla nostra classe che può effettuare o ricevere dal contenuto e che 
 variavel, fazendo isso com as funções get e set **/ variabile, facendo questo con le funzioni get e set ** / 
 public function  get nomePessoal():String { funzione pubblica ottenere nomePessoal (): String ( 
 return  _nomePessoal; _nomePessoal ritorno; 
 } ) 
 //Recebe uma string como nome / / Get come una stringa nome 
 public function  set nomePessoal(nome:String): void  { funzione pubblica nel settembre nomePessoal (nome: String): void ( 
 _nomePessoal=nome; _nomePessoal = nome; 
 } ) 
 } ) 
 } ) 

No exemplo em cima usei já uma class mais complexa, mas como está devidamente comentada será bem facil de perceber. In questo esempio di cui sopra ha utilizzato una classe più complessa, ma come è discusso adeguatamente sarà abbastanza facile da capire. Neste exemplo podemos entender o seguinte; É usado um Painel como base, (extends) e as suas propriedades…depois disso é automaticamente adicionado um titleIcon exemplificando atributos herdados do pai (Panel). 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).

O que acrescentei depois foram alguns novos atributos ao nosso Painel Pessoal, como o nomePessoal eo dataCriacao, onde ambos podem ser acedidos para ler os seus valores: 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:

 trace(meuPainel.nomePessoal); traccia (meuPainel.nomePessoal); 
 trace(meuPainel.dataCriacao); traccia (meuPainel.dataCriacao); 

eo nomePessoal pode ser definido: e la nomePessoal può essere definita:

 meuPainel.nomePessoal= "nome pessoal do meu painel" ; meuPainel.nomePessoal = "nome del mio pannello personale"; 

Esta leitura/escrita destes valores só é possivel devido aos getter’se setter’s que estão disponiveis nas nossas class’s, onde o get é usado em: 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:

trace(meuPainel.nomePessoal); traccia (meuPainel.nomePessoal);

eo set: e settembre:

meuPainel.nomePessoal=”nome pessoal do meu painel”; meuPainel.nomePessoal = "nome del mio pannello personale";

Neste exemplo em cima também vemos o uso de algumas funções matematicas (floor e ramdom) que podem ser acedidas pela class Math. In questo esempio vediamo anche oltre l'uso di alcune funzioni matematiche (piano e ramdom) che può essere letta da parte della classe Math. De seguida adicionamos um label ao painel assim que ele é criado com o nomePessoal ea hora da sua ciração, e ao juntar um eventListener esse label será eliminado assim que seja adicionado um child ao painel. 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. Não esquecendo também que removemos os eventListeners para não causar conflito. Non dimenticare che sono stati rimossi eventListeners non provocare dei conflitti.

Para testarem esta class basta fazerem: Per testare questa classe solo fare:

import mx.controls.Button; mx.controls.Button importazione;

import teste.teste; teste.teste importazione;

import mx.controls.Alert; mx.controls.Alert importazione;

private var myPanel:teste = new teste; var privato myPanel: prova = new prova;

private function init():void { privato funzione init (): void (

myPanel.addEventListener(”btnsProntos”, terminado); myPanel.addEventListener ( "btnsProntos", finito);

//myPanel.nomePessoal=”Painel GRUN”; podem ou não definir o nome pessoal do nosso painel. / / = MyPanel.nomePessoal "Pannello di GRÜN" può o non può impostare il nome personale del nostro pannello.

addChild(myPanel); addChild (myPanel);

} )

private function terminado(evt:Event):void { privato funzione finito (EVT: Event): void (

Alert.show(”Painel e icon completos.”) Alert.show ( "Pannello di icona e complete.")

} )

private function addChildMe():void { addChildMe privato function (): void (

var temp:Button = new Button; var temp: = new Button;

myPanel.addChild(temp); myPanel.addChild (temp);

} )

Aqui se chamarem a função init, o nosso painel é criado no stage, com o nome e hora da criação… se chamarem a função addChildMe será adicionado um botão ao nosso painel eo label que lá existia será removido automaticamente. 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 pronto, finalmente têm a vossa class criada que é nada mais nada menos um painel personalizado, e sem darem muito por isso já usaram métodos e parâmetros hereditários, bem como a composição que anteriormente foi explicada.. 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… Continua ...

Abraço. Abbracciare abbraccio.

ccommons

versão pdf temporariamente indisponivel. versione pdf temporaneamente non disponibile.
Deixe um comentário or Deixe um Trackback Lascia un tuo commento o Lascia un tuo Trackback

Um Comentário Un commento

  1. danilo danilo
    Julho 4, 2008 às 7:05 pm | Permalink 4 luglio 2008 a 7:05 pm | Permalink

    cara muito obriga valeu mesmo esses tutorial esta me ajudando muito… affrontare queste stesse forze guadagnato questo tutorial aiutare anche me ...

    :-)

Deixe um comentário Lascia un commento

O seu email nunca será publicado ou partilhado. La tua email non viene mai pubblicato o condiviso. Campos obrigatórios estão marcados com um * I campi obbligatori sono contrassegnati con un *

*
*




"));