Você está na página 1de 10

CURSO

ActionScript com Flash CS5

MÓDULO
08

www.ginead.com.br
1
Programação ActionScript com Flash CS5

Todos os direitos reservados para Alfamídia LTDA.

AVISO DE RESPONSABILIDADE

As informações contidas neste material de treinamento são distribuídas “NO ESTADO EM


QUE SE ENCONTRAM”, sem qualquer garantia, expressa ou implícita. Embora todas as
precauções tenham sido tomadas na preparação deste material, a Processor Alfamídia
LTDA. não têm qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito
à responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou
indiretamente, pelas instruções contidas neste material ou pelo software de computador e
produtos de hardware aqui descritos.

2
Programação ActionScript com Flash CS5

Adobe Flash CS5 – Programação ActionScript

UNIDADE 8 ORIENTAÇÃO A OBJETOS NO AS3


8.1 COMEÇANDO UM PROJETO
8.2 DECLARAR UMA CLASSE
8.3 ATRIBUTOS DE CLASSES
8.4 MÉTODOS CONSTRUTORES
8.5 PROPRIEDADES OU VARIÁVEIS DE INSTÂNCIA
8.6 ATRIBUTOS DE PROPRIEDADES
8.7 MÉTODOS
8.8 ATRIBUTOS DE MÉTODOS
8.9 GETTERS E SETTERS
8.10 PROPRIEDADES ESTÁTICAS
8.11 CONSTANTES
8.12 MÉTODOS ESTÁTICOS
8.13 HERANÇA
8.14 PREVENIR CLASSES DE SEREM EXTENDIDAS E MÉTODOS DE SEREM REESCRITOS

3
Programação ActionScript com Flash CS5

Unidade 8
Orientação a Objetos no AS3

Deste ponto em diante, será mostrado como escrever código orientado a


objeto em AS3. No entanto, não estudaremos orientação a objeto em
profundidade. Há muitas questões teóricas a respeito de projeto que são debatidas
a este respeito, e este tipo de assunto foge do escopo deste curso. Também não
serão estudadas design patterns, por necessitarem de uma compreensão maior dos
problemas comuns de projeto para serem compreendidas.

8.1 Começando um Projeto


Depois de definidas quais as classes e quais os métodos e propriedades de cada
classe, começa a etapa de implementação. Ao escrever as classes, para evitar
conflitos com nomes de outras classes de outros projetos, usamos packages.

8.2 Declarar uma Classe


Para declarar uma classe usa-se a forma:

modificador class Identificador{


}

8.3 Atributos de Classes


No AS3, por default, uma classe, se não tem um atributo definido, pode ser
acessada apenas pelas classes que estão no mesmo package, isto é, seu atributo é
internal. Caso se deseje que a classe seja acessada for do package, seu atributo
deve ser public.

Apesar de todas as classes que foram escritas até este momento serem
usadas apenas dentro de seu próprio package, nenhuma delas pode ter o atributo

4
Programação ActionScript com Flash CS5

internal, pois, por exigência do compilador, é preciso que classes de documento


sejam declaradas public.
Para definir um atributo, usa-se a seguinte forma:
atributo class Identificador{
}

No AS3 não se pode declarar uma classe abstrata.

8.4 Métodos Construtores


Um método construtor é um conjunto de instruções utilizados para inicializar uma
classe. Assim que uma classe é instanciada, este método é disparado. Ele precisa
ter o mesmo nome da classe.

No AS3 todos os construtores precisam ser public. A razão para esta


decisão pode ser encontrada em http:kuwamoto.org/2006/04/05/as3-on-the-
lackprivate-and-protected-constructors.

A falta de construtores privados torna a implementação de Singleton um


pouco diferente do usual, mas ainda assim ela está completamente correta.
Construtores podem receber parâmetros, mas não podem retornar nada.

8.5 Propriedades ou Variáveis de Instância


É uma variável relacionada a um objeto. Não confundir com variáveis locais, que
são as variáveis declaradas dentro de métodos. Para declarar uma propriedade usa-
se a forma:
atributo var identificador;

8.6 Atributos de Propriedades


Local do Public internal protected private
código e
relação à

5
Programação ActionScript com Flash CS5

propriedade
Classe que Permitido Permitido Permitido Permitido
contém a
definição
Classes Permitido Permitido Permitido Proibido
descendentes
Classe Permitido Permitido Proibido Proibido
diferente,
mesmo
package
Package e Permitido Proibido Proibido Proibido
classe
diferente

Costuma-se usar um “_” antes de identificadores de propriedades privadas,


por exemplo:
private var _somProp:SomeKind;

8.7 Métodos
É um conjunto de instruções de uma função. Pra criar um método usa-se a forma:
atributo function nome(){
}

8.8 Atributos de Métodos


São os mesmos das propriedades.

8.9 Getters e Setters


Getters e setters são métodos que permitem o acesso e modificação de variáveis
(na maioria variáveis privadas). Assim, ao invés de declarar um método que define
o nome de um item como
item.setName(“Apostila de AS3”);
Utiliza-se:
item.name=“Apostila de AS3”;

6
Programação ActionScript com Flash CS5

Neste caso, se está utilizando um método setter para modificar o valor da


propriedade privada (digamos que seja _name).
Podemos também querer acessar o valor de uma propriedade privada. Nesse caso,
utilizamos um método getter. No mesmo exemplo, pode-se passar o nome do item
como propriedade text em uma caixa de texto.
caixa.text=item.name;
Nos casos mostrados acima, os métodos ficariam como segue:
private var _name:String;
public function set name(value:String):void{
_name=value;
}
public function get name():String{
return _name;
}

8.10 Propriedades Estáticas


Propriedades estáticas devem ser usadas quando se tem um dado que se relaciona
com toda a classe, ao invés de dados que variam de instância para instância. Por
exemplo, as propriedades altura e largura, em uma classe que cria um botão, não
devem ser estáticas, pois se pode querer criar botões com tamanhos diferentes.
Porém uma propriedade tamanhoPadrão deve ser estática.

8.11 Constantes
É uma variável que, uma vez inicializada, nunca tem seu valor alterado.
Usa-se a palavra const ao invés de var.
Normalmente seus nomes são em caixa alta:
public static const DEFAULTSIZE:Number=90;

8.12 Métodos Estáticos


Assim como propriedades estáticas se relacionam com toda a classe.

7
Programação ActionScript com Flash CS5

8.13 Herança
É o relacionamento entre duas ou mais classes, onde uma herda as definições de
variáveis e métodos de outra. No entanto, é preciso ficar atento, pois herança
significa mais do que reutilizar código. Se o objetivo é apenas esse, pode-se
considerar utilizar composição ao invés.
Para fazer com que uma classe descenda de outra, utiliza-se a palavra extends na
declaração da classe.

Exercício 1: Herança
1- Crie um arquivo .fla na pasta unidade 7, e salve-o como ex7-1.
2- Não defina classe neste exercício.
3- Crie uma classe com o nome Inheritance e defina o método construtor (não é
necessário extender Sprite).
4- No construtor de Inheritance, imprima a String “Inheritance”.
5- Crie um novo arquivo as e chame-o de Descendant.
6- Declare a classe (internal) e o método construtor.
7- Faça a classe extender Inheritance.
8- No construtor de Descendant, imprima a String “Descendant”.
9- No arquivo ex7-1, declare uma nova instância de Inheritance (neste exercício
usa-se inh);
var inh:Inheritance= new Inheritance();
10- Compile.
11- Comente a declaração de inh.
//var inh:Inheritance= new Inheritance();
12- Declare uma nova instância de Descendant (neste exercício usa-se desc);
var desc:Descendant= new Descendant();
13- Compile.

Métodos e propriedades estáticas não são herdadas.

8
Programação ActionScript com Flash CS5

Exercício 2: Reescrever um método


1- Defina, em Inheritance, um método público com o nome “A”. Faça-o imprimir
na tela a String “Inheritance´s A”.
public function A():void{
trace("Inheritance´s A");
}
2- Faça o mesmo em Descendant, apenas mude a String de marcação.
public function A():void{
trace("Descendant´s A");
}
3- Marque o método como override.
override public function A():void{
4- Em ex7-1, chame o método A.
desc.A();
5- Compile.

8.14 Prevenir Classes de Serem Extendidas e Métodos


de Serem reescritos.
Use a palavra final.

9
Semeando Conhecimento

Você também pode gostar