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;};
Ola cumpade gostei de seu relogio.
Pode me mandar o arquivo .fla
andersonandru@hotmail.com
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
Ow eh da hora!!!
mas serah q vc poderia me mandar o arquivo .fla
agradeço desde jah
valew
yassuhiro@hotmail.com
Oi Também fiquei com duvidas no inicio…
Teria como me mandar o .fla???
Obrigada
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
Cara, muito bom!
Seria possível me enviar o .fla?
ralpherass@gmail.com
Obrigado!
tem como me mandar um arquivo fla estou chrio de duvidas
Cara to Cheio De duvidas tem como voce manda o arquivo Fla ?
se tiver agradeço muito !!
obg
jonathan_gomes1@hotmail.com
O camarada muito bom o seu relógio..
Só queria saber como monta ele.
será que poderia complementar o resto??
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!!
gostei muito do tutorial e preciso dele para um site…=/
tem como enviar o .fla?
e-mail: natan_campos1@hotmail.com
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
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
Nossa muito bacana seu relogio, tem como mandar o fla, por email
tiagohei@hotmail.com
grato
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
meu email djviolla@hotmail.com
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
Adenir,
Infelizmente não tenho mais o arquivo-fonte do relógio. Mas diga qual é sua duvida, se for algo que possa ajudar!
Até++!