relógio-alarme

4 respostas
B

Olá pessoal quero fazer um relógio alarme em que acualize as horas, alguém sabe como faço isso
Obrigado

4 Respostas

Jesuino_Master

Oi,

Qual tecnologia? JavaFX? Flash? Flex?

A primeira coisa é conhecer as classes de data do Java.

B

bio-quimico:
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.

andre.gil

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