Uma das coisas que vejo aqui no fórum de muitos participantes é a má qualidade de declaração de variáveis, nomenclaturas, local onde se coloca o código, ect.
Então estou fazendo esse tópico para tentar ajudar os iniciantes a melhorar a qualidade de seu código, seguindo normas básicas, comuns a todos os programadores e que podem ajudar, e muito, um código a ser lido por outra pessoa, por membros de uma equipe ou até por você mesmo depois de um bom tempo de ter mexido no projeto.
1) Nomear corretamente os objetos:
Nomear corretamente suas instâncias facilitam o acesso ao código. Principalmente conforme as instâncias vão se sobrepondo (coisa a se evitar a todo custo). Use sempre nomes claros e objetivos e não esqueça, nunca esqueça, de usar um "_" + tipo de objeto, para facilitar a vida.
MovieClip => clip_mc (Ex: bola_mc, caixa_mc, menu_mc, preloader_mc). Sempre com '_mc' no final do nome. Não use minha_bola_mc. Para clips com mais de uma palavra, utilize a forma "camelo", assim: minhaBola_mc.
Botao => botao_btn (Ex: home_btn, contato_btn, envieEmail_btn). Sempre com _btn no final do nome.
TextField => textField_txt (Ex: imputNome_txt, imputEmail_txt, descricao_txt). Sempre com _txt no final do nome.
Video => videoPanel_vi (Ex: videoPainel_vi)
Veja como as coisas ficam mais claras:
menu_mc.home_btn.onRelease = function():Void { menu_mc.navegador_mc.labelNavegador_txt.text = "Você está em Site >> Home"; }
Sem abrir o fla, eu já consigo rapidamente identificar que dentro de um movieClip chamado menu_mc existe um botão chamado home_btn que, quando clicado vai exibir uma frase ("Você está.." etc) em uma caixa de texto dinâmica labelNavegador_txt que está no movieClip menu_mc >> navegador_mc.
Eu poderia escrever algo como:
//clique no botão e F9 on (release) { this._parent._parent.pedacoCima.fraseDeNavegacaoDoPedaco.texto.text = "Você está em Site >> Home"; }
Você consegue me dizer exatamente e, pior de tudo, visualizar a hierarquia de objetos dentro dessa linha de comando? Se você consegue, ainda assim, já tem bom tempo de prática com action para não fazer um código como esse acima.
É uma antiga luta minha aqui no fórum conseguir que todos esqueçam que existe algo como "on (release)", da jurássica linguagem action script 1.0, que eu usava no Flash 5 (e usava fraldas hahahahaaha). A maioria aqui pode não ser especialista em flash ou não querer aprender OOP no flash nem migrar para AS3, mas migrar para a sintaxe 2.0 é, no mínimo, uma obrigação nossa como profissionais da internet. É como se recusar a aprender CSS. Nâo há justificativas.
Então nomeie corretamente suas instâncias e chame os métodos a partir da camada de action da timeline.
OU seja:
this.menu_mc.contato_btn.onRelease = function():Void { trace("após nomear as instâncias corretamente, aumente o desempenho do flash e a solidez do seu código especificando o tipo de retorno que a função executa ou 'Void' para nenhum retorno"); }
2) Declaração de variáveis
Ao declarar variáveis, faça no início do código, nem que seja para usar na linha 5000 (jamais escreva códigos de 5000 linhas hehehe).
Se não for variável de timeline, use a palavra chave var e TIPIFIQUE a variável. Faça um código sólido, claro, limpo:
var estaTocando:Boolean = new Boolean(); var nomeCliente:String = new String(); nomeCliente = "João da Silva".
Nâo escreva nomes muito longos mas também não faça coisas como:
var nMClite = "João da Silva".
Não, nMClite não sugere nomeCliente, por mais que isso pareça claro no momento. Seja inteligente e ajude sua memória ou sua equipe a assumir seus projetos de onde o cliente o abandonou a 3 meses atrás.
3) Comentários
Comentários não são para júniors, como todos dizem.
Comentar um código também é algo que exige prática. Ninguém aguenta um código com comentários em cada linha, ou sem uma linha sequer de comentários e com funções e variáveis do tipo
var expctMssgFromServerByJsStatus:String; function extrctFleByJsSePossible() { }
Enfim, é isso. Use o bom senso e siga pequenas normas. E vc verá como vai ficar rápido e simples vc fazer reuso dos seus antigos códigos e como isso vai organizar até mesmo sua lógica e seu planejamento em projetos de flash.
Abraço a todos.
pp
- HaroNism, LarPhozyHah and JeffMalm curtiram esta postagem