Fazendo um relógio em flash com Actionscript 2.0

Bom, primeiramente devemos entender como vai funcionar nosso relógio, ele será digital e analógico, no digital além de mostrar a hora também irá exibir o dia da semana e a data.

Para começarmos a fazer nosso relógio, primeiro temos que fazer o desenho, podemos usar o próprio flash ou qualquer editor de imagem.

Depois de feito o desenho do relógio, vamos criar cinco campos de texto dinâmicos, instanciados como hora_txt, minuto_txt, segundo_txt, semana_txt e dia_txt, após isso vamos instanciar os ponteiros, ponteiro_hora, ponteiro_minuto e ponteiro_segundo.

Obs.: O ponto de registro dos ponteiros tem que estar como centralizado inferior.

Actionscript

O relógio será feito em um único frame, então devemos fazer para que o aplicativo atualize o tempo todo naquele único frame, para isso vamos usar o onEnterFrame que irá atualizar o código infinitamente, enquanto o relógio estiver aberto.

this.onEnterFrame = function()
{

};

Todo nosso código ira ficar dentro dessa função. Dentro da função vamos criar as variáveis onde irão conter os valores para que o relógio funcione.

this.onEnterFrame = function()
{
var horario:Date = new Date();
hora = horario.getHours();
minuto = horario.getMinutes();
segundo = horario.getSeconds();
};

Dentro da função foram inseridas quatro variáveis, onde a primeira recebe todos os valores da propriedade Date();, na segunda variável de nome ‘hora’ vai receber o valor getHours(); da variável horario, a variável ‘minuto’ receberá o valor getMinutes(); e ‘segundo’ receberá getSeconds(); também da variável horario.

Agora vamos chamar as variáveis nas entrâncias dos ponteiros para ele funcionar, ficando assim:

this.onEnterFrame = function()
{
var horario:Date = new Date();
hora = horario.getHours();
minuto = horario.getMinutes();
segundo = horario.getSeconds();

_root.ponteiro_hora._rotation = hora * 30;
_root.ponteiro_minuto._rotation = minuto * 6;
_root.ponteiro_segundo._rotation = segundo * 6;
};

A instancia ponteiro_hora recebe a variável hora que e multiplicada por 30. Para que o ponteiro_hora dê uma volta completa a cada 12 horas, vamos dividir 360° por 12 que e igual a 30, o mesmo será usado para os ponteiros minuto e segundo, só que ao invés de ser dividido por 12 será divido por 60 que será igual a 6.
A instancia ponteiro_minuto recebe a variável minuto e a instancia ponteiro_segundo recebe a variável segundo que são multiplicadas por 6.

Nosso relógio analógico está pronto. Agora vamos fazer a programação do relógio digital.

Para o digital funcionar, vamos chamar as variáveis hora, minuto e segundo nas instancias hora_txt, minuto_txt e segundo_txt, ficando assim:

this.onEnterFrame = function()
{
var horario:Date = new Date();
hora = horario.getHours();
minuto = horario.getMinutes();
segundo = horario.getSeconds();

//Analógico
_root.ponteiro_hora._rotation = hora * 30;
_root.ponteiro_minuto._rotation = minuto * 6;
_root.ponteiro_segundo._rotation = segundo * 6;

//Digital
_root.hora_txt.text = hora;
_root.minuto_txt.text = minuto;
_root.segundo_txt.text = segundo;
};

Bom, basicamente nosso relógio já está pronto! Mas agora falta fazer o relógio exibir o dia da semana e a data, para fazer isso vamos utilizar um laço de repetição switch para verificar o dia da semana e exibir na caixa de texto. Primeiro vamos criar uma variável onde ira buscar o valor getDay();, assim:

semana = horario.getDay();
switch (semana)
{
case 1 :
_root.semana_txt.text = “Segunda”;
break;
case 2 :
_root.semana_txt.text = “Terça”;
break;
case 3 :
_root.semana_txt.text = “Quarta”;
break;
case 4 :
_root.semana_txt.text = “Quinta”;
break;
case 5 :
_root.semana_txt.text = “Sexta”;
break;
case 6 :
_root.semana_txt.text = “Sábado”;
break;
default :
_root.semana_txt.text = “Domingo”;
break;
}

Dentro de cada case a instancia semana_txt recebe da variável semana um texto correspondente a cada dia da semana de acordo com o numero.
Ex.: 1 = segunda, 2 = terça etc

Agora só falta colocar o dia. Para isso vamos criar uma variável chamada dia onde recebera o valor getDate da variável horário. E colocar o valor da variável dia na instancia dia_txt, ficando assim:

dia = horario.getDate();
_root.dia_txt.text = dia;

Nosso código completo:

this.onEnterFrame = function()
{
var horario:Date = new Date();
hora = horario.getHours();
minuto = horario.getMinutes();
segundo = horario.getSeconds();

//Analógico
_root.ponteiro_hora._rotation = hora * 30;
_root.ponteiro_minuto._rotation = minuto * 6;
_root.ponteiro_segundo._rotation = segundo * 6;

//Digital
_root.hora_txt.text = hora;
_root.minuto_txt.text = minuto;
_root.segundo_txt.text = segundo;

//Semama
semana = horario.getDay();
switch (semana)
{
case 1 :
_root.semana_txt.text = “Segunda”;
break;
case 2 :
_root.semana_txt.text = “Terça”;
break;
case 3 :
_root.semana_txt.text = “Quarta”;
break;
case 4 :
_root.semana_txt.text = “Quinta”;
break;
case 5 :
_root.semana_txt.text = “Sexta”;
break;
case 6 :
_root.semana_txt.text = “Sábado”;
break;
default :
_root.semana_txt.text = “Domingo”;
break;
}
// Dia
dia = horario.getDate();
_root.dia_txt.text = dia;

};

Escrito por Jean_Carlos on abril 19, 2008. Arquivado em Flash. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

18 respostas a Fazendo um relógio em flash com Actionscript 2.0

  1. Ola cumpade gostei de seu relogio.
    Pode me mandar o arquivo .fla

    andersonandru@hotmail.com

  2. maaaassa pakas

    soh fikei com algumas duvidos no começo

    e se nao for pedir muito me mandar o arquivo .fla

    eu agradeceria desd ja

    rodrigo_bertechini@hotmail.com

    abraços

  3. Ow eh da hora!!!
    mas serah q vc poderia me mandar o arquivo .fla

    agradeço desde jah
    valew

    yassuhiro@hotmail.com

  4. Oi Também fiquei com duvidas no inicio…
    Teria como me mandar o .fla???

    Obrigada

  5. Cara, tive um probleminha com as aspas, o Flash 8 aceita somente simples, mas relogio digital funcionou uma beleza, não assim o analógico, terias a gentileza de acrescentar mas informação sobre isso.
    Aquele abraço

  6. Cara, muito bom!
    Seria possível me enviar o .fla?

    ralpherass@gmail.com

    Obrigado!

  7. tem como me mandar um arquivo fla estou chrio de duvidas

  8. Cara to Cheio De duvidas tem como voce manda o arquivo Fla ?

    se tiver agradeço muito !!

    obg

    jonathan_gomes1@hotmail.com

  9. O camarada muito bom o seu relógio..

    Só queria saber como monta ele.

    será que poderia complementar o resto??

  10. Olá…muito legal seu tutorial..vc pode me enviar o .fla?

    Pra ficar perfeito só faltou uma coisinha: quando muda de hora (ex: 11 p/ 12) o ponteiro das horas muda bruscamente de um número para outro..tem como fazer ele ir mudando aos poucos, conforme os minutos vão passando, para parecer mais realista?

    Abraço!!

  11. gostei muito do tutorial e preciso dele para um site…=/
    tem como enviar o .fla?
    e-mail: natan_campos1@hotmail.com

  12. Após realizar a proeza de construir o relógio, deparei-me com o mesmo problema que o
    UERITON informou em 26/02/09. Se possível e se existir como fazer o ponteiro das horas andar normalmente, agradeceria imensamente.
    Um abraço e até logo.
    Sebastião Ramos Leite

  13. ola!… AMIGO criei um relogio digital no cs3 flash MAIS time code em vez de “00:00:00″ ele estacontando em “00: 0: 0″ ele da inicio do “1″ sandoval,santiago@hotmail.com

  14. Nossa muito bacana seu relogio, tem como mandar o fla, por email

    tiagohei@hotmail.com

    grato

  15. ola , tudo bem, gostaria q alguem podesse me ajuda, como faço pra colocar no site da radio,para mudar a foto na hora programda, tipo cada hora q entrar um locutor automaticamente , ja muda a foto dele, desde ja obrigado

  16. cara me manda o arquivo fla se puder. Tem tres dis e tres noites que to tentanto fazer e nao consigo. SE puder me mandar fico muito grato, vai me ajudar muito

  17. Adenir,

    Infelizmente não tenho mais o arquivo-fonte do relógio. Mas diga qual é sua duvida, se for algo que possa ajudar!

    Até++!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>