Comunidad de diseño web y desarrollo en internet online

Reloj que no dependa del cliente

Citar            
MensajeEscrito el 20 Dic 2004 11:04 pm
^^ saludos

Ya vi cómo hacer un reloj... pero hay una forma para que no dependa del cliente si no de alguna hora de un servidor sin tanto rollo?

Lo que no quiero es que el cliente, al cambiar su hora altere la misma aplicación.... es decir, quiero la hora oficial de la zona...

me explico? :o

Agradecería su ayuda

Por ishtarlaure

28 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Dic 2004 05:12 am
Flash solo no puede hacerlo, necesitas un lenguaje del lado del servidor, cual puedes usar?

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 21 Dic 2004 04:09 pm
estoy usando coldfusion

por el momento lo que hice fue pedir la hora del servidor... mediante un XML

Código :

reloj_mc.onEnterFrame = function() {   
   GEvento_xml = new XML();
                GEvento_xml.ignoreWhite = true;
                GEvento_xml.load(URL+"/comp/HORA.cfc?method=getHora");

GEvento_xml.onLoad = function(exitoso) {
   if (exitoso) {      
      trace("datos cargados HORA DEL SERVER" );
      trace("---------------------------------");
      horaC_ext = GEvento_xml.firstChild.firstchild.attributes.hora_actual;
      hora_ext = GEvento_xml.firstChild.firstchild.attributes.hora;
      min_ext = GEvento_xml.firstChild.firstchild.attributes.minuto;
      seg_ext = GEvento_xml.firstChild.firstchild.attributes.seg;
      //trace("---------------------------------");
            
   } else {
      trace("datos no cargados HORA DEL SERVER");
   }
   };//fin del load XML

   hora = hora_ext;
   minutos = min_ext;
   segundos = seg_ext;
   //asigno la rotacion de las aguajas con regla de tres simple
   reloj_mc.hora_mc._rotation = (hora * 360) / 12;
   reloj_mc.minutero_mc._rotation = (minutos * 360) / 60;
   reloj_mc.segundero_mc._rotation = (segundos * 360)/ 60;
   //establezco el texto del display
   
   reloj_mc.hora_display=horaC_ext;
};



como pueden ver simplemente alteré el código de muestra de flash y le añadí el xml siguiente:

Código :

<cfcomponent>   
   <!--- Trae la hora --->
   <cffunction name="getHora" access="remote"  output="true">
      <cfargument name="hora" type="numeric" required="true">
      
      <node label="Evento">
            <cfoutput>
               <node hora_actual="#TimeFormat(now(), 'HH:mm:ss')#" 
               hora="#TimeFormat(now(), 'HH')#" 
               minuto="#TimeFormat(now(), 'mm')#" 
               seg="#TimeFormat(now(), 'ss')#"/>            </cfoutput>   
      </node> 
   </cffunction>      
</cfcomponent>


Ahora mi pregunta es: se puede hacer más sencillo o no? Creo que me compliqué mucho la existencia no? :oops:

Muchas gracias ^^

Por ishtarlaure

28 de clabLevel



 

msie
Citar            
MensajeEscrito el 21 Dic 2004 04:47 pm
hazlo con loadvars

Por fael

BOFH

2443 de clabLevel

3 tutoriales
2 articulos

 

firefox
Citar            
MensajeEscrito el 21 Dic 2004 05:23 pm
Como lo tienes esta muy bien hecho; puedes hacerlo con LoadVars o con XML ... pero con la que te sientas mejor estara bien

Eso si, tienes un error bastante fuerte y es ese enterFrame; no seria mas facil cargar la hora UNA sola vez y luego que un setInterval cada segundo actualizara la hora que ya cargo del servidor, de ese modo solo la pides una vez y la actualizas del lado del cliente sumandola a la que obtuviste, es un algoritmo simple y mucho mas sencillo

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 22 Dic 2004 05:57 pm
:lol: jejeje eso no lo había visto....


para que vean que no nada más pido respuestas y también colaboro jejeje :) ahí va lo que hice

el xml queda igual
el flash queda en el primer frame:

Código :

//llamar la hora del servidor
GEvento_xml = new XML();
GEvento_xml.ignoreWhite = true;
GEvento_xml.load(URL+"HORA.cfc?method=getHora");

GEvento_xml.onLoad = function(exitoso) {
   if (exitoso) {      
      trace("datos cargados HORA DEL SERVER" );
      trace("---------------------------------");
      trace(GEvento_xml.firstChild.firstchild.attributes.hora_actual);
      horaC_ext = GEvento_xml.firstChild.firstchild.attributes.hora_actual;
      hora_ext = GEvento_xml.firstChild.firstchild.attributes.hora;
      _root.min_ext = GEvento_xml.firstChild.firstchild.attributes.minuto;
      _root.seg_ext = GEvento_xml.firstChild.firstchild.attributes.seg;
      //trace("---------------------------------");
      //meter en arreglos los datos obtenidos      
            
   } else {
      trace("datos no cargados HORA DEL SERVER");
   }
   };//fin del load XML
//cambiar cada segundo

setInterval(funcion_hora,1000);

//funcion para cambiar la hora
function funcion_hora(seg){
   seg_ext= parseInt(seg_ext) +1;
   
   if(seg_ext>="60"){
      //trace("actualiza minuto ");
      seg_ext="0";
      min_ext = parseInt(min_ext)+1;
      if(min_ext>="60"){
         //trace("actualiza hora");
         min_ext="0";
         hora_ext=parseInt(hora_ext)+1;
         if(hora_ext>="24"){
            hora_ext="0";
            }
         }
      
   }
   //formato 00:00:00
   if(seg_ext<10 && seg_ext != "00"){
      seg_ext="0"+seg_ext;
      }
   if(min_ext<10 && min_ext != "00"){
      min_ext="0"+min_ext;
      }
   if(hora_ext<10 && hora_ext != "00"){
      hora_ext="0"+hora_ext;
      }
   //reloj_mc.hora_display es la caja de texto que responde a la variable hora_display
reloj_mc.hora_display = hora_ext + ":" + min_ext + ":" + seg_ext;
   }


Saludos ye spero que ahora si haya estado correcto :love:

Por ishtarlaure

28 de clabLevel



 



Ultima edición por ishtarlaure el 22 Dic 2004 07:31 pm, editado 1 vez

msie
Citar            
MensajeEscrito el 22 Dic 2004 06:56 pm
Mira en la ayuda como funciona setInterval; es mas facil de lo que piensas y muy intuitivo

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 22 Dic 2004 07:32 pm
Muchas muchas gracias, todo perfecto :)

Por ishtarlaure

28 de clabLevel



 

msie
Citar            
MensajeEscrito el 15 May 2010 09:02 pm
Use el codigo que aparece aquí para poder observar la hora del servidor, pero no me funciono... que puedo hacer?

Por diblanco

11 de clabLevel



 

firefox

 

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