Aprendendo o ActionScript 3.0 (Parte 1)

Introdução

Ah... que maravilha o mundo OOP! Tudo organizado, cada coisa em seu lugar. Imagine só, pacotes, classes, interfaces, objetos, tudo ao seu alcance. Como?! Esse mundo não parece maravilhoso para você? Bom, se você não entende nada de OOP (do inglês, Object Oriented Programming - Programação Orientada a Objetos), este mundo lhe parecerá mais um pesadelo do que um sonho. Mas não se preocupe, o objetivo deste artigo é lhe mostrar o quão bom este mundo é, e como é fácil viver nele.

Em algumas lições, você verá como funciona o ActionScript 3.0 e a OOP, e quando terminar estará apto a se aventurar neste maravilhoso mundo através do AS3.

Estrutura da Linguagem

A primeira coisa que devemos analisar, é a estrutura da linguagem, como ela funciona, e o que ela tem a nos oferecer. O AS3 contém diversas classes, classe Sound para sons, classe Loader para carregar conteúdo externo, classe XML para ler e manipular dados em documentos XML, entre muitas outras. Essas classes são organizadas em pacotes. Eis os pacotes existentes no Flash CS3:

  • adobe
  • fl
  • flash

Muito legal, mas... o que são pacotes? Para que eles servem? E classes? O que são essas classes? Calma... vamos fazer um parênteses, e entender o que são as tais classes, pacotes e talvez até mesmo os objetos.

Um pouco de OOP

Vamos a parte chata da coisa, entender como funciona a tal OOP. Podemos falar que a OOP é uma forma de organizar o nosso código. Como? Imitando (em termos de organização) algo ao qual estamos acostumados (pelo menos a maioria): o mundo real.

Para começar, como você vê o mundo? Vamos imaginar que você vê o mundo como uma coisa, e que essa coisa está cheia de outras coisas, e assim sucessivamente. Uma casa é uma coisa, um carro é uma coisa, essa coisa que você está usando para ler este texto também é uma coisa. Uma casa contém janelas, que por sua vez contém vidros, e tudo isso são coisas.

Ok, a viagem tá legal, mas e aí?

Objetos

Saindo da viagem, uma coisa, tecnicamente, seria o mesmo que um objeto. Uma casa é um objeto e, de certa forma, até mesmo uma pessoa pode ser considerada um objeto (isso vai da fantasia de cada um). Casas, carros, pessoas, tudo isso pode ser descrito com base em dois grupos de características: atributos e comportamentos.

Um atributo é um aspecto do objeto. Uma casa tem cor, altura, largura, área, janelas, cômodos, entre outros. Já um comportamento é uma ação que o objeto pode realizar. Um carro pode andar para a frente, dar ré, virar, freiar, entre outros.

Agora, como passar tudo isso para a programação? O meu menu não tem rodas, nem janelas, e ele também não pode andar nem dar a ré. Mas, espera aí. Vamos analisar com um pouco mais de calma.

O que o seu menu contém? Itens? Ok, o seu menu contém itens. Largura e altura? Cor? Sim, o seu menu contém tudo isso. Então, podemos dizer que o seu menu tem os seguintes atributos, também chamados de propriedades:

  • Menu
  • itens
  • cor
  • largura
  • altura

E o que seriam os itens? Pense em um item de um menu, o que ele contém? Largura e altura? Cor? Link? Sim, um item de menu pode conter tudo isso.

  • ItemMenu
  • largura
  • altura
  • cor
  • link

Bom, só aí já declaramos as propriedades de dois tipos de objetos que poderíamos usar na programação. Menu e ItemMenu. Vale lembrar que você não precisa criar todos os métodos e propriedades de um objeto, somente os que você necessita no momento.

Agora, quais seriam os comportamentos, que podemos chamar também de métodos, de um menu? Bom, um menu pode se movimentar? Pode abrir e fechar? Aparecer ou desaparecer? Claro, ele pode fazer tudo isso.

  • Menu
  • itens
  • cor
  • largura
  • altura
  • abrir
  • fechar

Estruturalmente falando, este seria o nosso objeto menu. Ele teria os itens necessários (ex. Home, Contato, Empresa), teria uma cor (ex. branco), uma largura (ex. 500px), uma altura (ex. 200px) e teria os comportamentos de abrir e fechar.

Classes

A parte dos objetos nós já vimos como funciona (teoricamente), mas, e a tal classe? O que é? Como é?

Uma classe é um gabarito que define os métodos e propriedades de um objeto. É exatamente o que fizemos antes:

  • Menu (Classe)
  • itens
  • cor
  • largura
  • altura
  • abrir
  • fechar

A nossa classe Menu define as propriedades itens, cor, largura e altura e os métodos abrir e fechar. O nosso objeto menu é criado a partir dessas especificações:

  • Menu (Objeto)
  • itens: Home, Contato, Empresa
  • cor : Branco
  • largura: 500px
  • altura: 200px

Logicamente, essa é a parte teórica da coisa, apenas tenha esse idéia guardada em sua caixola que em breve entraremos na parte prática.

Pacotes

Voltando a falar da linguagem AS3, como vimos, ela contém os seguintes pacotes:

  • adobe
  • fl
  • flash

Pacotes (packages) é um conjunto de classes. Na verdade, é uma pasta, a parte do conjunto é frufu. Então, a grosso modo, um pacote é uma pasta com um monte de classes dentro. Mas, porque agrupar as classes em um pacote? Por uma questão: or-ga-ni-za-ção!

Vamos pegar por exemplo o pacote flash. Dentro deste, temos diversos sub-pacotes. Um destes sub-pacotes é o net, que contém um conjunto de classes para enviar e receber dados através de uma rede, como por exemplo, receber dados de um URL, gerenciar arquivos, etc.

Enfim, pacotes são uma forma de organizar melhor suas classes, afim de encontrá-las facilmente quando precisar. Agora você sabe que, se precisar executar alguma tarefa relacionada a redes, irá procurar no pacote flash.net a classe que atende as suas necessidades.

Dê uma olhada pelas classes do Flash sempre que possível, para que você possa se ambientar com o que a linguagem tem a oferecer, e não ficar perdido quando precisar de algo. Um bom caminho para dar uma olhada nas classes é o F1, ou o livedocs: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

Começando a fazer algo

Agora que vimos toda a parte teórica da coisa, vamos praticar um pouco. Vou pedir que você crie uma pasta, com o nome que quiser, onde quiser. Nessa pasta vamos criar os exercícios que faremos durante todo o artigo.

Vamos começar com um exemplo bem simples. Abra o Flash, e crie um novo arquivo ActionScript File.

O Flash vai criar um arquivo branco. Nesse arquivo nós vamos criar a nossa classe, mas... por onde começar? É um pouco complicado começar do nada. Vamos tentar trazer a teoria para a prática. Lembra dos pacotes? Vimos que não passa de uma pasta que agrupa classes em um único local afim de organizá-las. Pois bem, essa é a primeira parte, temos que declarar a qual pacote nossa classe pertence. Essa declaração é obrigatória.

package test
{

}

Aí está, declaramos que nossa classe pertence ao pacote test. Portanto, a estrutura de diretórios deve ser algo parecido com isso:

  • Estudos (pasta criada em qualquer lugar para este artigo).
  • test (pacote das classes de teste).
Nota: Crie a pasta test dentro de Estudos.

O segundo passo é declarar o nome da nossa classe. Vamos fazer o exemplo mais manjado da face da terra: o Hello World!

package test
{
       
        public class HelloWorld
        {

        }

}

Uau! Tá ficando com cara de algo complicado já, pra mim isso é um bom sinal. O public que você tá vendo ali, é o que chamamos de “controle de acesso” da classe. Por padrão, a classe só pode ser utilizada por códigos que residam no pacote (tipo internal), ou seja, por outras classes do mesmo pacote. Definimos a chave public para declarar que a nossa classe tem acesso livre por classes de outros pacotes.

Após o public, temos a chave class, que indica a criação de uma classe, e em seguida o nome da classe. Procure sempre seguir esse padrão de nomenclatura para o nome das classes, é o mais utilizado, e na minha opinião, o melhor, pois todas as classes do Flash seguem ele.

O próximo passo é declarar o método construtor da classe.

package test
{
       
        public class HelloWorld
        {
               
                /**
                 * Construtor
                 */

                public function HelloWorld()
                {
                        trace(“Olá Mundão!”);
                }
               
        }
       
}

O objetivo do método construtor, como o nome diz, é construir a classe. Este método é chamado sempre que criamos uma nova instância da classe. Salve sua classe com o nome HelloWorld.as no pacote test. Em seguida, crie um novo arquivo Flash File (ActionScript 3.0) e salve com o nome de hello.fla. A estrutura dos arquivos será essa:

  • Estudos (pasta criada em qualquer lugar para este artigo).
  • test (pacote das classes de teste).
  • HelloWorld.as (classe do pacote test)
  • hello.fla

No arquivo hello.fla, clique no primeiro frame, e abra o painel de Actions (Window > Actions). Escreva o seguinte código:

import test.HelloWorld;

// Instância da classe HelloWorld.
var teste:HelloWorld = new HelloWorld();

Teste a aplicação (Control > Test Movie), e se tudo correr bem a mensagem “Olá Mundão!” irá aparecer no painel output.

O que fizemos foi importar a classe do pacote test, e em seguida criar uma instância da mesma. O operador new cria a instância da classe, que por sua vez executa o método construtor, e por isso a mensagem é exibida. Portanto, toda vez que instânciamos uma classe, o método construtor é chamado. Através do método construtor podemos definir valores que sejam importantes para o objeto, assim como chamar métodos que tenham o objetivo de “inicializar” tarefas do objeto.

O exemplo HelloWorld serve apenas para ilustrar o funcionamento de uma classe, ele não faz nada além disso. Na próxima parte do artigo vamos aplicar os conhecimentos adquiridos em algo menos abstrato, nós iremos criar um botão, e a partir daí um menu.

AnexoTamanho
Parte 1.zip8.58 KB

Comentários

Ola mozartpetter, ótimo

Ola mozartpetter, ótimo tutorial nunca vi ninguem explicar tão bem, você fez a parte teórica ficar tão facil de entender, muitos outros tutoriais que vi de AS3 os caras começavam a falar sobre a AS2 e depois falava de AS3 você já pegou e falou apenas de AS3 todos deveriam fazer tutoriais assim

Abraço....estou indo pra segunda parte...

duvida

Bom dia.
Depois de Abrir o Flash, (Abre o AS3 ou 2 ? ) o documento aparece em branco e não fala onde começo a digitar?
Bom, se for pra ir no Action ou F9, td bem ali eu começo a escrever. Mas depois pra salvar em hello.as?? Como assim.
Léo ;)

Tipo de Arquivo

Leonardo, você deve estar abrindo um Flash File (AS3), e deveria ser um ActionScript File, de acordo com meu Flash a 6º Opção no Newdocument.

Parabens!!

Cara, parabens pelo excelente tutorial, mais pessoas deveriam fazer tutoriais tao bons e em portugues na net, parabens pela iniciativa, continue assim, aguardo mais, quero mais!!!!!!!!