Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Duda sobre programa "hacer clic en pantalla"

Hola, en la explicación hay algunas cosas que no entiendo, o medio entiendo pero quiero confirmar que sea asi.

El codigo es el siguiente:

<canvas width="600" height="400"> </canvas>

<script>
  var pantalla = document.querySelector("canvas");
  var pincel = pantalla.getContext("2d");
  pincel.fillStyle = "grey";
  pincel.fillRect(0, 0, 600, 400);

  function mostrarMensaje(evento) {
    var x = evento.pageX - pantalla.offsetLeft; //pos x
    var y = evento.pageY - pantalla.offsetTop; //pos y
    var d = new Date(); //crea una variable de tipo date
    var hora =
      checkTime(d.getHours()) +
      ":" +
      checkTime(d.getMinutes()) +
      ":" +
      checkTime(d.getSeconds());
    //Verifica si el número de las horas, minutos o segundos, tiene un solo dígito,
    //caso positivo le adiciona el cero en la frente para obtener el formato deseado 00:00:00
    function checkTime(i) {
      if (i < 10) {
        i = "0" + i;
      }
      return i;
    }

    alert(
      "La hora es: " + hora + " y las coordenadas son: x=" + x + ", y=" + y
    );
  }

  // Aquí viene la llamada a la función con el evento onclick

  pantalla.onclick = mostrarMensaje;
</script>

Mi duda en especifico es donde muestra:

 function mostrarMensaje(evento) {
    var x = evento.pageX - pantalla.offsetLeft; //pos x
    var y = evento.pageY - pantalla.offsetTop; //pos y
    var d = new Date(); //crea una variable de tipo date
    var hora =
      checkTime(d.getHours()) +
      ":" +
      checkTime(d.getMinutes()) +
      ":" +
      checkTime(d.getSeconds());
    //Verifica si el número de las horas, minutos o segundos, tiene un solo dígito,
    //caso positivo le adiciona el cero en la frente para obtener el formato deseado 00:00:00
    function checkTime(i) {
      if (i < 10) {
        i = "0" + i;
      }
      return i;
    }

en este caso ¿La función itera y hace que i = d.getHours() comprueba < 10 y despues hace i = d.getMinutes() tambien comprueba que sea < 10 y comprueba lo siguiente i = d.getSeconds()? Y así es como comprueba si i<10 y realiza el cambio si corresponde?

Si alguien me confirma o me explica en mas detalle. Agradecido.

1 respuesta

Si y no. La expresión d.getHours() extrae la hora de la variable d, luego dicho valor pasa como argumento de la función checkTime para ver si esta compuesto por 2 dígitos; si ese es el caso lo deja igual, pero si no lo que hace es agregar un 0 antes, esto para conservar el formato 00:00:00 Lo mismo realiza con los números obtenidos en d.getMinutes() y en d.getSeconds8)