Iniciando OOP
Texto retirado da documentação oficial do Flash.
O ActionScript 2.0 é uma linguagem orientada a objeto. Assim como o ActionScript, as linguagens OOP baseiam-se no conceito de classes e instâncias. Uma classe define todas as propriedades que distinguem uma série de objetos. Por exemplo, a classe User representa um grupo de usuários que utilizam o seu aplicativo. Em seguida, você tem um instanciamento da classe, que, para a classe User, é um dos usuários individuais, ou seja, um de seus membros. O instanciamento produz uma instância da classe User e essa instância possui todas as propriedades da classe User. As classes também são consideradas como tipos de dados ou modelos que podem ser criados para definir um novo tipo de objeto. Para definir uma classe, use a palavra-chave class em um arquivo de script externo. Você pode criar esse arquivo na ferramenta de criação do Flash selecionando File (Arquivo) > New (Novo) e, em seguida, selecionando ActionScript File (Arquivo do ActionScript).
O Flash Player 8, disponível no Flash Basic 8 e no Flash Professional 8, adiciona vários novos recursos à linguagem ActionScript, como efeitos de filtro, upload e download de arquivos, e a API (Application Programming Interface, Interface de programação de aplicativos) externa. Como sempre, o ActionScript 2.0 fornece várias palavras-chave e conceitos avançados e familiares de OOP (como classe, interface e pacote) encontrados em outras linguagens de programação, como Java. A linguagem de programação permite criar estruturas de programa reutilizáveis, dimensionáveis, resistentes e fáceis de manter. Ela também diminui o tempo de desenvolvimento fornecendo aos usuários assistência completa sobre codificação e informações de depuração. Você pode usar o ActionScript 2.0 para criar objetos e estabelecer herança, bem como para criar classes personalizadas e estender as classes de nível superior e internas do Flash. Você aprenderá a criar classes e a usar classes personalizadas. O Flash Basic 8 e o Flash Professional 8 contêm aproximadamente 65 classes de nível superior e internas que fornecem desde tipos de dados básicos, ou “primitivos” (Array, Boolean, Date e assim por diante), a erros e eventos personalizados, além de várias maneiras de carregar conteúdo externo (XML, imagens, dados binários brutos e muito mais). Você também pode criar suas próprias classes personalizadas e integrá-las aos documentos do Flash ou, até mesmo, estender as classes de nível superior e adicionar sua própria funcionalidade ou modificar a funcionalidade existente.
Agora que já sabemos para que serve uma classe no flash vamos desenvolver uma, para ver se isso realmente agiliza nossas vidas, a principio crie um arquivo chamado exercicio01_botão.fla, nele você irá criar um botão com deverá conter um texto dinâmico chamado "_texto" e um movieclip chamdo "_fundo", mantenha a cor #000000 para esse movieclip, agora delete ele de seu stage, e na library você clica com o botão direito no movieclip e configure o "Identifer" como "botao" e o "AS 2.0 class" como Botao, que é o nome da classe que vamos criar, agora vá em "file>Publish Settings>flash>Settings" e adicione o caminho onde irá ficar a sua classe, no nosso caso "Classes", clique em "CTRL+U" e faça o mesmo procedimento.
Agora no primeiro frame de seu flash adcione o seguinte codigo.
-
//valores que vão dentro do campo de texto
-
var textos:Array = ["UOL", "Terra", "iG", "Afterweb", "AOL"];
-
//Valores de Links dos botões.
-
var links:Array = ["http://www.uol.com.br", "http://www.terra.com.br", "http://www.ig.com.br", "http://www.afterweb.com.br", "http://www.pqp.com.br"];
-
//Valores das cores
-
var cores:Array = [0xffcc00, 0x0000ff, 0xff0000, 0xcccccc, 0x999999];
-
//Definindo um MovieClip
-
var anterior:MovieClip;
-
//loop de criação
-
for (var i = 0; i<5; i++) {
-
//anexa o objeto
-
var atual:MovieClip = _root.attachMovie("botao", "botao"+i, _root.getNextHighestDepth());
-
//seta as propriedades
-
atual.link = links[i];
-
//utiliza os métodos da Classe
-
atual.texto = textos[i];
-
atual.corFundo = cores[i];
-
//Ação de clik
-
atual.onClick = function():Void {
-
getURL(this.link);
-
};
-
//posiciona o objeto
-
atual._y = anterior._y+anterior._height+5;
-
//seta o anterior
-
anterior = atual;
-
}
Agora dentro de sua pasta "classes" crie um arquivo chamado "Botao.as" e digite o seguinte codigo.
-
//importa a classe Tween
-
import mx.transitions.Tween;
-
import mx.transitions.easing.*;
-
//classe
-
dynamic class Botao extends MovieClip {
-
//propriedades
-
private var _texto:TextField;
-
private var _fundo:MovieClip;
-
private var _cor:Color;
-
private var _acao:Function;
-
private var _animcao:Tween;
-
//função construtora
-
function Botao() {
-
//chama a superclasse
-
super();
-
//seta o objeto de cor
-
_cor = new Color(_fundo);
-
//retira o retângulo ridículo de seleção
-
_focusrect = false;
-
}
-
//métodos
-
//setters
-
function set texto(pTexto:String):Void {
-
_texto.text = pTexto;
-
}
-
function set onClick(pAcao:Function):Void {
-
_acao = pAcao;
-
}
-
function set corFundo(pCor:Number):Void {
-
_cor.setRGB(pCor);
-
}
-
//getters
-
function get texto():String {
-
return _texto.text;
-
}
-
function get onClick():Function {
-
return _acao;
-
}
-
function get corFundo():Number {
-
return _cor.getRGB();
-
}
-
//eventos
-
function onRelease():Void {
-
_acao();
-
}
-
function onReleaseOutside():Void {
-
onRelease();
-
}
-
function onRollOver():Void {
-
// (objeto, propriedade, metodo, inicial, final, tempo, segundos)
-
_animacao = new Tween(this, "_alpha", None.easeNone, 100, 50, 3, false);
-
}
-
function onRollOut():Void {
-
// (objeto, propriedade, metodo, inicial, final, tempo, segundos)
-
_animacao = new Tween(this, "_alpha", None.easeNone, 50, 100, 3, false);
-
}
-
}
Pronto agora se você seguiu as minhas instruções corretamente é só executar o seu arquivo exercicio01_botão e ver o resultado.
Em breve vou falar um pouco mais sobre classes aqui no meu Blog
AndrewBoldman:
Hi, good post. I have been wondering about this issue,so thanks for posting.
Posted on junho 4th, 2009 at 10:24 pm