Seguindo essa grande tendência de Hollywood de montar trilogias rs… Chegamos ao final da trilogia sobre o uso de variáveis dentro do flash. Nos posts anteriores vimos como declarar uma variável dentro do flash e também como usamos uma variável global e local Neste, vamos ver outra forma de utilização de variável, chamada de parâmetro.
Definição
Um parâmetro define como uma variável pode ser passada para uma subrotina (função), que por sua vez utiliza desses valores para alterar seu comportamento em tempo de execução1. Em outra palavras, parâmetros são valores que passamos de uma função para outra.
1 http://pt.wikipedia.org/wiki/Parâmetro_(ciência_da_computação)
Sintaxe
Para enviar um parâmetro é bem simples, basta chamar a função e passando um valor.
Ex:
passarValor(1);
function passarValor(valor):void{
trace(valor);
}
No output o resultado vai ser 1, pois, foi o valor que passamos ao chamar a função passarValor. Também, poderiamos determinar o tipo de valor (string, numero, boolean…).
Ex:
passarValor(1);
function passarValor(valor:int):void{
trace(valor);
}
Desta forma, função passarValor só aceita parâmentro, onde a variável seja do tipo número. Você pode testar enviando como parâmetro uma string ao invés de um número e verá que o flash vai apontar um erro de acesso indefinido.
Aplicação
Para finalizar, vamos criar um relógio digital e nele vamos usar parâmetros para executar determinadas rotinas e verificações.
1º – Abra um arquivo novo no flash e escolha a opção Flash File (ActionScript 3.0)
2º – crie uma caixa de texto dinâmico e instancie com “hora_txt”. Lembre-se de alterar a cor do texto para que ela fique diferente da cor do fundo.
3º – crie uma nova camada, deixe-a acima da camada onde esta o texto dinâmico. Para organizar nomeie as camadas (Actions e Designer), seu arquivo deve estar parecido com a imagem abaixo:

4º – Aplicar o Código:
//criamos um objeto e nele atribuimos a classe timer que irá invocar o intervalol a cada 1 segundo
var intervalo:Timer = new Timer(1000);
//Pedimos para o intervalo executar a função exibirHora
intervalo.addEventListener(TimerEvent.TIMER, exibirHora);
//iniciar o intervalo
intervalo.start();
function exibirHora(evt:TimerEvent):void {
//cria variavel do tipo date, armazena(dia, mês, ano, dia-da-semana, hora, minuto e segundo)
var hora:Date = new Date();
//passamos para o texto dinâmico o valor da hora que vai ser atualizado a cada 1 segundo.
hora_txt.text = String(hora.hours) +":"+String(hora.minutes)+":"+String(hora.seconds);
}
Neste primeiro exemplo você vai ver que toda vez que o número for menor que 10 ele irá aparecer com apenas uma casa decimal, isso esta correto, mas esteticamente fica não fica legal, então, temos que dizer ao flash que toda a vez que o numero for menor que 10 ele deve acrescentar 0, para que fique com duas casas decimais.
Para isso vamos criar uma função, onde ela ira receber um parâmetro (valor de hora, minuto e segundo) e ira retornar o valor onde se parametro for menor que 10 irá acrescer 0.
//criamos um objeto e nele atribuimos a classe timer que irá invocar o intervalol a cada 1 segundo
var intervalo:Timer = new Timer(1000);
//Pedimos para o intervalo executar a função exibirHora
intervalo.addEventListener(TimerEvent.TIMER, exibirHora);
//iniciar o intervalo
intervalo.start();
function exibirHora(evt:TimerEvent):void {
//cria variavel do tipo date, armazena(dia, mês, ano, dia-da-semana, hora, minuto e segundo)
var hora:Date = new Date();
//escrever no texto dinamico
//hora_txt.text = String(hora.hours) +":"+String(hora.minutes)+":"+String(hora.seconds);//passamos para o texto dinâmico o valor da hora que vai ser atualizado a cada 1s
hora_txt.text = incrementoZero(hora.hours) +":"+incrementoZero(hora.minutes)+":"+incrementoZero(hora.seconds);//passamos para o texto dinâmico o valor da hora que vai ser atualizado a cada 1s
}
function incrementoZero(valor:int):String {
//Determino a condição para parâmetro(valor) menor que 10.
if (valor<10) {
//retorna valor acrescido de zero
return "0" + valor;
//caso contrário
} else {
//retorna apenas o valor
return String(valor);
}
}
Com isso acrescentamos o zero e também finalizamos o assunto rs…
abs e até!


