Objetos

No artigo anterior falamos sobre varíaveis, que são elementos utilizados para armazenarmos e acessarmos valores durante a execução de um programa.

Variáveis isoladamente não conseguem representar conceitos complexos. Por exemplo, vimos que através de uma variável textual podemos representar o nome de uma pessoa, mas o que fazer quando desejo representar uma pessoa? Ou um MovieClip?

Em uma visão simplificada, objetos são um conjunto de variáveis e funções (falaremos sobre funções mais a frente, apenas registre essa informação). No contexto de objetos convencionou-se chamar de propriedade uma variável pertencente a um objeto, e de método uma função pertencente a um objeto.

Objetos são definidos através de classes. Uma classe nada mais é que o tipo de um objeto. Assim como em variáveis temos os tipos String, int, number e Boolean no Action Script, para um objeto também teremos um tipo, tipo esse que será especificado através de uma classe, e que inclusive poderá ser definida por nós.

Nesse artigo não abordarei como criar classes, nem conceitos de orientação a objetos. Apenas tentarei explicar o que são, para que você possa utilizar as classes já existentes do flash e componentes já prontos que encontramos na Internet. Isso já lhe possibilitará desenvolver projetos bem interessantes. Em artigos futuros, na categoria Intermediário, abordaremos mais detalhadamente classes e orientação a objetos.

Voltando ao exemplo da pessoa, poderíamos então ter uma classe “Pessoa”. Essa classe poderia ter as propriedades nome, nascimento, sexo, altura, peso e os métodos CalcularIdade() e CalcularIMC().

A classe “Pessoa” permitiria a nós criarmos objetos do tipo “Pessoa”. Pessoa é uma conceito, e é isso que uma classe representa. Um objeto dessa classe representará uma pessoa específica.

Para criarmos objetos a partir de uma classe usamos a sintaxe a seguir:

// Sintaxe para criação (instanciação) de um objeto.
var nomeDoObjeto: nomeDaClasse= new nomeDaClasse();

ou simplesmente

// Sintaxe para criação (instanciação) de um objeto (forma compacta).
var nomeDoObjeto = new nomeDaClasse();

Então, se desejassemos criar representações de pessoas em Action Script utilizariamos:

// Crio um novo objeto do tipo pessoa, o qual chamo de jamesKirk.
var jamesKirk = new Pessoa();

// Defino o valor para a propriedade nome do objeto.
jamesKirk.nome = "James Tiberius Kirk";

// Defino o valor para a propriedade idade do objeto.
jamesKirk.idade=38;

// Defino o valor para a propriedade altura do objeto.
jamesKirk.altura=1.78;

// Crio um novo objeto do tipo pessoa, o qual chamo de michael.
var michael = new Pessoa();

// Defino o valor para a propriedade nome do objeto.
michael.nome = "Michael Jackson";

// Defino o valor para a propriedade idade do objeto.
michael.idade=50;

// Defino o valor para a propriedade altura do objeto.
michael.altura=1.74;

// Exibirá "James Tiberius Kirk"
trace(jamesKirk.nome);

// Exibirá "Michael Jackson"
trace(michael.nome);

// Exibirá 1.78.
trace(jamesKirk.altura);

Relembrando que é necessário, para que esse código funcione, a definição da classe Pessoa, que não mostrarei aqui como é feita. O objetivo aqui é abordar a utilização de classes já prontas. Caso você deseje executar o código, o exemplo exibido aqui (completo) está disponibilizado para download no fim do artigo.

É importante percebermos que tudo que criamos em um projeto Flash, seja feito através de código Action Script ou seja feito através das ferramentas de desenho ou tween do Flash, será representado internamente como uma instancia de uma determinada classe.

Assim, quando adicionamos um MovieClip, uma forma desenhada, uma imagem ou um som ao stage no Flash, na verdade estamos instanciando objetos dos tipos MovieClip, Shape, Bitmap ou Sound respectivamente. Só que estamos fazendo isso através da interface do Flash ao invés de código Action Script.

Essa informação nos abre portas para entedermos que tudo que podemos fazer através da interface do flash (desenho, criação de movie clips, tweens, etc) poderá também ser feito através de Action Script, bastando para isso conhecermos as classes correspondentes.

MovieClip é sem dúvida a classe mais importante do Action Script. Quando arrastamos um MovieClip para o nosso stage, estamos na verdade criando (instanciando) um objeto do tipo MovieClip. Esse objeto, conforme já foi falado, possuirá propriedades (variáveis) e métodos (funções).

Nos próximos artigos veremos como manipular movieclips através de Action Script, acessando suas propriedades e métodos. Em caso de dúvidas, sinta-se a vontade em perguntar!

Baixar código-fonte do exemplo.

Tags: , , , , ,

segunda-feira, junho 15th, 2009 1. Básico

Deixe o seu comentário

Spam Protection by WP-SpamFree