guiobom131 0 Denunciar post Postado Dezembro 15, 2007 Olá galera, vou fazer um relógio em 50 linhas com ActionScript (quem quiser o .fla me manda um e-mail), vamos lá: Abra um novo documento e no primeiro key-frame digite o código: //Cria o círculo de fundo e configura cor e posição createEmptyMovieClip("fundo", 1); fundo.lineStyle(1, 0x000000, 100); fundo.beginFill(0xFFFFCC, 100); fundo.moveTo(0, -100); fundo.curveTo(100, -100, 100, 0); fundo.curveTo(100, 100, 0, 100); fundo.curveTo(-100, 100, -100, 0); fundo.curveTo(-100, -100, 0, -100); fundo.endFill(); fundo._x = 275; fundo._y = 200; //Cria um quadrado que será o centro do relógio, de onde os ponteiros irão sair createEmptyMovieClip("centro", 2); centro.beginFill(0x000000, 100); centro.moveTo(-5, -5); centro.lineTo(5, -5); centro.lineTo(5, 5); centro.lineTo(-5, 5); centro.lineTo(-5, -5); centro.endFill(); centro._x = 275; centro._y = 200; //Cria o ponteiro dos segundos com tamanho 75 createEmptyMovieClip("s", 3); s.lineStyle(1, 0x000000, 100); s.lineTo(0, -75); s._x = 275; s._y = 200; //Duplica o ponteiro dos segundos e instancia-o de "min", com tamanho 60 duplicateMovieClip(s, "min", 4); min._height = 60; //Duplica o ponteiro dos segundos e instancia-o de "h", com tamanho 45 duplicateMovieClip(s, "h", 5); h._height = 45; //Cria o campo de texto onde ficará o relógio digital createTextField("digital", 6, 0, 300, 550, 30); digital.selectable = false; //Determina o tamanho da fonte e centraliza o texto; formato = new TextFormat(); formato.size = 20; formato.align = "center"; digital.setNewTextFormat(formato); onEnterFrame = function () { //Cria uma nova data que terá o horário do sistema dataDoSistema = new Date(); //Determina o valor dos segundos, minutos e horas segundos = dataDoSistema.getSeconds(); minutos = dataDoSistema.getMinutes(); horas = dataDoSistema.getHours(); //Determina a rotação dos ponteiros, explico um pouco mais a seguir s._rotation = segundos*6; min._rotation = minutos*6+segundos/10; h._rotation = horas*30+minutos/2+segundos/120; //Faz com que as variáveis que irão compôr o relógio digital tenham dois dígitos, ou seja, se for menor que dez irá colocar um "0" na frente horas2 = (horas<10) ? ("0"+horas) : (horas); minutos2 = (minutos<10) ? ("0"+minutos) : (minutos); segundos2 = (segundos<10) ? ("0"+segundos) : (segundos); //Determina o que estará escrito no campo de texto criado anteriormente digital.text = horas2+":"+minutos2+":"+segundos2; }; Pronto! É só publicar! Vou explicar sobre o cálculo da rotação dos ponteiros, basta usar regra de três: Ponteiro dos segundos: 60s ---------- 360º (uma volta completa tem 60s) segundos --- s._rotation s._rotation = segundos*360/60 = segundos*6; Ponteiro dos minutos: 60 min ---- 360º(uma volta completa tem 60min) minutos --- min._rotation min._rotation = minutos*360/60 = minutos*6; Lembre-se que os segundos influenciam o ponteiro dos minutos 3600s ------- 360º(uma volta completa dos minutos, 60min, tem 3600s) segundos --- min._rotation min._rotation = segundos*360/3600 = segundos/10; min._rotation = minutos*6+segundos/10;(a soma das duas regras de três) Ponteiro das horas: 12h ----- 360º(uma volta tem 12h) horas --- h._rotation h._rotation = horas*360/12 = horas*30; Lembre-se que os minutos influenciam o ponteiro das horas 720min --- 360º(uma volta do ponteiro das horas, 12h, tem 720min) minutos --- h._rotation h._rotation = minutos*360/720 = minutos/2; Lembre-se que os segundos influenciam (minimamente) o ponteiro das horas 43200s ----- 360º(uma volta do ponteiro das horas, 12h, tem 43200s) segundos --- h._rotation h._rotation = segundos*360/43200 = segundos/120; h._rotation = horas*30+minutos/2+segundos/120;(a soma das três regras de três) Qualquer dúvida por favor me informem. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites