Comunidad de diseño web y desarrollo en internet online

reloj: duda sobre setInterval (un stop() al final ¿?)

Citar            
MensajeEscrito el 02 Ago 2009 04:18 am
estaba haciendo un ejercicio de un reloj de agujas y buscando el la web (no simpatizando mucho con el enterFrame) encontré otro código pero más como para un display de hora tipo hs:min o reloj digital.
La consulta es:
Qué hace el stop(); final del código 2 y 3...

y
Cómo hago para que la agúja de los segundos no tenga saltos??
(sin tener que disminuir mucho más el intervalo de 1000ms [ej: segundos._rotation = segundo*6+milisegundo*¿?; ] y sabiendo que no puedo hacer una animación del segundero entre segundo y segundo ya que dependería del frame rate que no es preciso :( )

código 1:

Código ActionScript :

onClipEvent (enterFrame) {
   _root.onEnterFrame = function() {
      var fecha = new Date();
      var hora = fecha.getHours();
      var minuto = fecha.getMinutes();
      var segundo = fecha.getSeconds();
      horas._rotation = hora*30+minuto*0.5;
      minutos._rotation = minuto*6;
      segundos._rotation = segundo*6;
   };
}

(código 1 va en el movie clip que contiene los clips de agujas con nombres de inst. "horas","minutos","segundos".)



código 2:

Código ActionScript :

timer = function (){
   var now = new Date();
   var hora = now.getHours();
   var mins = now.getMinutes();
   var secs = now.getSeconds();
   var daystatus = (hora >= 12) ?( "pm" ):( "am");
   if(hora >12)hora -= 12;
   if(hora == 0)hora =12;
   if(hora < 10) hora = "0" + String(hora);
   if(mins < 10) mins = "0" + String(mins);
   if(secs < 10) secs = "0" + String(secs);
   reloj.text = hora + ":" + mins + ":" + secs + " " + dayStatus;
}
this.createTextField("reloj",1, 0, 0, null, null);
reloj.autoSize = true;
setInterval(timer,1000);
timer();
//wtf¿?¿?¿?¿?
stop();
//wtf¿?¿?¿?¿




CÓDIGO 3 que armé en base a los primeros dos...

Código ActionScript :

reloj=function(){
   var fecha = new Date();
   var hora = fecha.getHours();
   var minuto = fecha.getMinutes();
   var segundo = fecha.getSeconds();
   horas._rotation = hora*30+minuto*0.5;
   minutos._rotation = minuto*6+segundo*0.1;
   segundos._rotation = segundo*6;
}
setInterval(reloj,1000);
reloj();
// wtf¿?¿?
stop();
//wtf¿?¿?¿?

(código 3 va dentro del movie clip contenedor de los clips de agújas en su único frame )


espero que haya quedado planteado claro ya que se me fue un poco largo U_U

Por Mr. D. Vided

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2009 12:09 pm
En realidad ahora no estás haciendo un Tween, sino simplemente cambiando la rotación, deberías hacer un Tween entre segundos usando la clase Tween o librerías como Tweener http://code.google.com/p/tweener/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:02 am
Amm ... creo que me asusta el tema de las clases :beer: quizás esperaba algo más simple y específico como respuesta XD pero muchas gracias, voy a ver de que se trata :o

Igual todavía me queda la duda del stop(); al final del código :wtf:

y lo del segundero me las arreglé más o menos con una animación algo así como si oscilara apenas el segundero...

quedan cada tanto algunos saltos.. se salta algún segundo que otro :(

Por Mr. D. Vided

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 11:20 am
¿El stop? SI un timeline tiene varios fotogramas, evita que el cabezal haga loop, si tiene un solo fotograma lo puedes quitar

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 08 Ago 2009 02:43 am
:o aaahhh... ok (y) gracias again Jorge

Por Mr. D. Vided

10 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.