Escolar Documentos
Profissional Documentos
Cultura Documentos
Criacao Componente As3
Criacao Componente As3
www.msdevstudio.com
Depois de ter aqui falado de como um componente é apresentado no stage, bem como todos
os passos da sua criação, falo agora, em continuação com a documentação da adobe, de como
se deve proceder à implementação de um componente, bem com os passos a executar na sua
implementação.
Estes procedimentos não são todos obrigatórios, mas deve-se ter em conta as suas
dependências.
Passo então a citar a fonte original, mas em português e com um exemplo não testado.
1: package meuComponente
2: {
3: //importar o que iremos usar no nosso componente.
4:import mx.core.UIComponent;
5:import mx.controls.Button;
6: import mx.controls.TextArea;
7: import flash.events.Event;
8:
9: // definimos o nosso evento pessoal que usaremos em baixo
10: [Event(name="change", type="flash.events.Event")]
Todos os componentes são baseados na class UI, se desejarmos criar um componente de raiz,
mais complexo, devemos extender esta class, caso contrario se só desejarmos
implementar/extender um componente simples como um botão, extendemos apenas esse
componente. Vamos tomar o exemplo mais complicado, extendendo assim o UIComponent.
1: //extender a class que desejamos
2: public class Exemplo extends UIComponent {
3:
8: }
Estas variaveis podem ser definidas pelo programador usando as propriedades ou a tag MXML;
Chamado na inicialização do componente, muito util para adicionar-mos um novo child, por
exemplo os nossos componentes TextArea e Button declarados em cima:
Chamado para recalcular (ao ser alterado) o tamanho do nosso componente, bem como
definirmos as posições dos nosso childs.
Chamado pelo método invalidateDisplayList(); para redefinir a nossa DisplayList (caso sejam
alterados os tamanhos do nosso componente) :
Como o componente foi iciniado pelo package meuComponente { , teremos que da-lo como
terminado:
1: }
Para distribuirem o vosso ''componente'' como swc, estes passos citados em cima, devem ser
feitos num .as dentro de um ''Flex Libray Project'', que ao ser guardado é compilado
imediatamente o vosso .swc.
1: import meuComponente.Exemplo;
2: //Declarando o componente
3: var tempComp:Exemplo = new Exemplo();
4: //Adicionando ao um panel, por exemplo:
5: meuPainel.addChild(tempComp);
6: //definindo o lanel do nosso botão no componente:
7: tempComp.textLabel="BOTAO";
Caso seja distribuído num swc, o "Exemplo" estará disponível tanto no action script (import
meuComponente.Exemplo, como na janela "Components" em "Custom" com o nome de
Exemplo.
Este exemplo, não foi testado e devem ser tomados em conta alguns erros que possam
acontecer a testar, mas em principio funcionará bem. Este exemplo é dos mais completos, já
que implementa directamente um UIComponent, ou seja, cria um componente de raiz.
Este exemplo e artigo foi baseado na documentação disponíveis aqui, aqui e aqui (EN)