Olá pessoal quero fazer um relógio alarme em que acualize as horas, alguém sabe como faço isso
Obrigado
relógio-alarme
B
4 Respostas
Oi,
Qual tecnologia? JavaFX? Flash? Flex?
A primeira coisa é conhecer as classes de data do Java.
B
Olá pessoal quero fazer um relógio alarme em que acualize as horas, alguém sabe como faço isso
Obrigado
A linguagem é em Flash Builder.
Bom, vamos por partes:
Primeiro, você precisa de um Timer que vai ficar atualizando as horas na tela do seu alarme. Para isso, vamos criar um Timer no evento creationComplete da sua aplicação:
// Cria Timer que atualiza o Label com a hora atual
var t:Timer = new Timer(100);
t.addEventListener(TimerEvent.TIMER, updateTime);
t.start();
Agora, no evento TimerEvent.TIMER desse Timer, vamos criar uma função que atualiza a hora no Label da tela:
// Pega a data atual
var date:Date = new Date();
// Formatter para mostrar apenas a hora
var df:DateFormatter = new DateFormatter();
df.formatString = "HH:NN:SS";
// Mostra a hora no Label
lbTime.text = df.format( date );
Depois disso, uma comparação para ver se já passou da hora que ele deveria avisar o alarme:
// Se for maior do que 09:34:20 do dia 12/03/2010 (o mês, conta de 0 a 11)
if( date > new Date(2010, 2, 12, 9, 34, 20) )
{
// Pinta o label de vermelho
lbTime.setStyle("color", 0xFF0000);
}
Pronto, é isso. No caso, ao invés de pintar o label de vermelho, você poderia tocar um som, ou qualquer coisa que você quiser. O exemplo completo:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onComplete()">
<mx:Script>
<![CDATA[
import mx.states.SetStyle;
import mx.formatters.DateFormatter;
private function onComplete():void
{
// Cria Timer que atualiza o Label com a hora atual
var t:Timer = new Timer(100);
t.addEventListener(TimerEvent.TIMER, updateTime);
t.start();
}
private function updateTime(event:TimerEvent):void
{
// Pega a data atual
var date:Date = new Date();
// Formatter para mostrar apenas a hora
var df:DateFormatter = new DateFormatter();
df.formatString = "HH:NN:SS";
// Mostra a hora no Label
lbTime.text = df.format( date );
// Se for maior do que 09:34:20 do dia 12/03/2010 (o mês, conta de 0 a 11)
if( date > new Date(2010, 2, 12, 9, 34, 20) )
{
// Pinta o label de vermelho
lbTime.setStyle("color", 0xFF0000);
}
}
]]>
</mx:Script>
<mx:Label id="lbTime" fontSize="20" />
</mx:Application>
[]'s
B
Obrigado André,pela ajuda, vou passar isso para o flex e ir modificando, para tentar perceber bem isso
Valeu mesmo.
Criado 11 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 4
Participantes 3