Versão: 1
Dificuldade: Básico

Olá pessoal,
estou iniciando a minha carreira em tutoriais (hehe), e como esse é o primeiro (espero que de vários outros), trouxe uma dica bastante útil e utilizada em programação action script.

Esse tutorial será publicado em etapas para que todos possam testar e exercitar o aprendizado durante uma semana, e nas semanas seguintes vamos implementar algumas novas técnicas.

Vamos lá?

Baixe o arquivo de exemplo (ele será utlizado nos próximos posts)


Arquivo

Abra o flash e crie um novo documento .fla.

Desenhe e crie 4 simbolos do tipo movie clip na biblioteca (estrela, quadrado, bola e pentagono)


Dica: nomeie seus simbolos categorizando-os, ex: Movie clip comece com mc (mcBola), gráfico comece com gr (grQuadro), botão comece com bt (btEnviar) etc. isso faz com que sua biblioteca fique organizada sem precisar de pastas. E lembre-se nome do simbolo é diferente de instance name.

Voltando...

Coloque na layer 1 do palco de forma que fiquem sobrepostos em algumas partes.

Clique e coloque instance name em todos, ex: quadrado_mc, circulo_mc, estrela_mc e pentagono_mc.


Mas pra que nomear com _mc?
Bom se você fez essa pergunta, é porque sertamente esta iniciando em flash e deve estudar um pouco mais os conceitos do action script.
Mas respondo assim mesmo. Isso faz com que o auto complete do action funcione e isso facilita na hora de programar.

Agora nomeie a camada onde se encontram nossos objetos de "objetos", crie uma nova layer e nomeie de action.

Clique no 1º frame da camada action pressione F9 e vamos ao que interessa...


Veja o código

QUOTE
//minhas variáveis
var meusClips:Array = [circulo_mc, pentagono_mc, quadrado_mc, estrela_mc]; //Vetor que guarda todos os objetos que utilizarão a mesma função
var i:Number = 0; //variável padrão de incremento de vetores e matrizes

//função que será reutilizada
function abreMenu(alvo:MovieClip):Void {

//quando clicar no objeto
alvo.onPress = function() {

alvo.swapDepths(alvo.getNextHighestDepth());

};

}

//o truque todos utilizam a mesma função
for (i in meusClips) {
abreMenu(meusClips);
}



Vamos analisar o que acontece:

A maioria do pessoal que está iniciando em flash costuma escrever os eventos dentro dos elementos por behavors, e isso sabemos que não é uma boa prática pois assim decentralizamos nosso código e dificultamos futuras atualizações. Por isso vamos escrever tudo na raiz.

Nas duas primeiras linhas estão as minhas variáveis (geralmente eu escrevo todas antes pois antes de codificar eu ja projetei), vamos entender essas variáveis.

A variável "meusClips
" é um vetor que guarda o nome de todos os meus objetos, e esse é um ponto crucial para nos reutilizarmos a função.

A variável "i" é minha variável de incremento, é uma variável padrão em "for" e utilizada praticamente todas as programações (pode ser qualquer coisa).

QUOTE
//minhas variáveis
var meusClips:Array = [circulo_mc, pentagono_mc, quadrado_mc, estrela_mc]; //Vetor que guarda todos os objetos que utilizarão a mesma função
var i:Number = 0; //variável padrão de incremento de vetores e matrizes



O proximo passo é criamos a nossa função ("abreMenu" o nome vocês vão entender no próximo tutorial), ela vai conter um parâmetro (alvo) do tipo Movieclip, e não vai retornar nada (Void).

Dentro da dunção nós criamos um evento de Release para o alvo e dentro do evento mandamos o alvo para o nível de profundidade mais alto.

Estamos utilizando essa transição pois no próximo tutorial vamos implementar uma classe não documentada do flash para trabalhar com Depth.

QUOTE
//função que será reutilizada
function abreMenu(alvo:MovieClip):Void {

//quando clicar no objeto
alvo.onPress = function() {

alvo.swapDepths(alvo.getNextHighestDepth());

};

}



Bom, agora vamos ao truque:

Faça um for que percorre nosso vetor (eu gosto de utilizar for(var in vetor)), dentro do for ele chama a função passando como parâmetro nossos objeto, ja que cada um esta posicionado em um índice do vetor.

QUOTE
//o truque todos utilizam a mesma função
for (i in meusClips) {
abreMenu(meusClips[i]);
}



Isso faz com que todos os movieclips tenham o mesmo evento de Release. Bacana né?

Conclusão:
Isso evita com que fiquemos escrevendo código interno, facilitando a Vida.
Mas você pode estar se perguntando: Mas são só 4 objetos?
E eu pergunto e se fosse um quebra cabeças de 1000 peças?

No próximo tutorial vamos implementar esse arquivo estudando a classe q mencionei acima, espero que tenha gostado e para isso me passem o feedback atravéz da enquete.

Abração a todos e até breve.

Você gostou? Comente no fórum!

Mais recentes em Flash

Formulario em flash
Por sergiojr - Formulario em flash...
Sistema de login utilizando flash e xml
Por MahDesign - . vamos aprender como criarmos um sistema de login...
Igraf 1.0 - gerando gráficos em flash via actionscript
Por weaver - Eu que fiz hospedei em outro canto mas ajuda muito...
Remova os pontilhados de um swf no ie
Por Manito - Galera, me incomoda muito quando um site que tenha...
Filtros
Por Lucasbr - Video aula...

Ver mais Artigos de Flash.

Ver e retirar outras dúvidas no fórum Webly.

Alguns Direitos Reservados | RSS | O Fórum

Webly Portal e Fóruns - Internet + Humana | Design by ArthurHenrique.com