Tutorial Action Script 3 – 010

Tutorial Action Script 3 – 010

Em continuação com o tutorial ( 001002003004005006007008009)

Depois de vista a estrutura física das class’s no nosso sistema de ficheiros facilmente entendemos que poderíamos criar outra class nesse package test, fazendo o seguinte:

package teste
{
    import mx.containers.Panel;
    public class exemploPanel extends Panel
        {
            public function exemploPanel()
            {
                trace("exemploPanel");
            }
        }
}

 

E usariamos:

 

import teste.exemploPanel;
var meuPnl:exemploPanel = new exemploPanel;

 

Se usarmos ambas as class’s (exemploPanel e test), teríamos que importar ambas:

import teste.exemploPanel;
import teste.teste;

mas isto pode ser simplificado dizendo ao compilador que queremos ambas as classes disponíveis para uso no nosso projecto, para isso em vez dos 2 imports devemos usar:

 

import teste.*;

e desta forma, todas as class’s do nosso package teste serão importadas.

 

Depois de criar esta segunda class no mesmo package, a estrutura de directorias será:

->Projecto:

    ->teste (package)

        ->teste (class)

        ->exemploPanel (class)

 

Facilmente identificável e separadas para uma melhor organização e compreensão do nosso projecto. O básico das class’s está explicado e já é possível pensar em inúmeras utilidades para este tipo de programação, principalmente na sua facilidade de uso.

5.2. Inheritance.

Na class em cima, apenas derivàmos/extendemos uma class, mas não fizemos qualquer alteração à sua estrutura base, pelo que não usámos nenhuma propriedade herdada quer do Button ou do Panel. O que vamos passar a aprender é como usar este método e compreender o quanto simples é.

 

Vejamos o seguinte código:

 

package teste
{
    import flash.events.Event;
    import mx.containers.Panel;
    import mx.events.FlexEvent;
    
    public class teste extends Panel
    {
    [Embed("flexBtn.png")]
    private var iconImg:Class; 
        public function teste()
        {
        this.width=270;
        this.height=270;
        this.x=0;
        this.y=0;
        this.addEventListener(FlexEvent.CREATION_COMPLETE, criado, false, 0 ,true);
        }
 
    private function criado(evt:FlexEvent):void {
        this.titleIcon=iconImg;
        this.dispatchEvent(new Event("btnsProntos"));
        this.removeEventListener(FlexEvent.CREATION_COMPLETE, criado);
        }
    }
}

 

Neste exemplo, usamos uma propriedade herdada do Pai da class (Panel), a titleIcon, para definirmos de imediato um icon no nosso painel assim que ele é criado, e usamos também um eventDispatcher para avisar quando esse title icon foi terminado, basta usarem:

 

import teste.teste;
import mx.controls.Alert;
   
private function init():void {
    var myPanel:teste = new teste;
    myPanel.addEventListener("btnsProntos", terminado);
    addChild(myPanel);
}
 
private function terminado(evt:Event):void {
    Alert.show("Painel e icon completos.")
}

 

e ao chamarem a função init, será adicionado um painel à display list já com o nosso icon no topo do painel.

 

Até aqui apenas fizemos uso de algumas propriedades herdadas do nosso panel, como o .x .width .titleIcon e assim ficaram a perceber que a nossa class é tratada como se fosse um painel. O que vamos agora aprender é como juntar algumas propriedades e métodos pessoais à nossa Class e devido Package.

 

Continua…

ccommons


8 comments

add yours
  • Vilmar Spies June 24, 2008

    parabéns pela série de artigos, está muito bom…

  • Leandro JSJ July 8, 2008

    Cara parabens peloa tutoriais. Obrigado.

    Quando der da uma olhada no meu blog: http://www.desigart.com/blog

    Eu trabalho com design e tenho postado algumas coisas legais lá.

    Um abraço,
    Leandro JSJ

  • Roger Câmara July 9, 2008

    olá Mário. Estou com uma dúvida..
    Estou no tutorial nº 4, e na parte que diz pra desenvolver um sistema login com uma futura ligação ao BD mysql.
    está dando o erro no dbConf.mxml(na hora de chamar a função abrePainelLogin no botão ligar BD , olha o código:

  • Mário Santos July 9, 2008

    Veja o seu email Roger.

    Cumps.

  • Meykson September 5, 2010

    Oi galera eu não consigo achar a apostila de numero 011 como eu acho ela?cara essas apostilas são o max!!!

  • Meykson September 5, 2010

    Parabens Mário Santos!

  • Mário Santos September 6, 2010

    Obrigado Meykson,
    Quanto ao 11 pode encontrar aqui:
    http://blog.msdevstudio.net/2008/07/02/tutorial-action-script-3-011/

    Se for mais facil pode encontrar a listagem de todos aqui:
    http://blog.msdevstudio.net/category/serie-tutoriais-as3/

  • Francisco October 27, 2010

    Parabéns Mário, estou gostando muito deste tutorial, até aqui está bem explicativo.

Leave a Comment

Post