Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

Duda con el var y array , No entiendo la ubicación

Hola a todos , estoy tratando de comprender el código del instructor , la verdad comprendí mal el ejercicio, pensé que cada vez que hacia clic con el botón derecho tenia que cambiar de color y me estaba volviendo loco para poder hacer que cambie de color , lo que me llevo a ver el código del instructor....mi consulta es la siguiente la variable con el array de secuencia de colores por que comienza al principio y no antes de la función alterarColor ?. Desde ya muchas gracias y saludos a todos.

<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); 
   var colores = ["blue", "red", "green"]; 
    var indiceColorActual = 0; // comienza con blue

    function dibujarCirculo(evento){
        var x = evento.pageX - pantalla.offsetLeft;
        var y = evento.pageY - pantalla.offsetTop;    
        pincel.fillStyle = colores[indiceColorActual];
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
        console.log(x + "," + y);        
    }

    pantalla.onclick = dibujarCirculo;

    function alterarColor() {
        indiceColorActual++;
        if(indiceColorActual>= colores.length) {
             indiceColorActual = 0; //vuelve para el primer color, blue
        }
        return false; //menú contextual padrón de `canvas` no sea exhibido
    }

    pantalla.oncontextmenu = alterarColor;

</script> 
4 respuestas

Una pregunta en esta funcion que realiza el instructor y coloca dentro de la funcion la variable con ++, esto mismo es para que devuelva el valor a 0? Estoy tratando de poder comprender para entender bien la logica para implementar bien mis variables. Desde ya muchas gracias .Saludos a todos.

function alterarColor() {
        indiceColorActual++;
        if(indiceColorActual>= colores.length) {
             indiceColorActual = 0;

Ah perdon me olvidaba de algo ...en la iteracion for () el ++ se usa al final del codigo en la anterior consulta la funcion () comienza antes del If iria el ++ ...es antes y no al final del If o es indistinto?.Nuevamente muchas gracias.

solución!

Hola Horacio, como estás?

Generalmente cuando estamos escribiendo códigos primero declaramos todas las variables que serán utilizadas, te recomiendo revisar en concepto de hoisting en javascript aqui un link para que puedas revisar https://developer.mozilla.org/es/docs/Glossary/Hoisting

Respondiendo a tu segunda pregunta JavaScript proporciona los operadores aritméticos, en este caso ++ es un operador de incremento, su función es siempre incrementar en 1; en el caso de un loop for es el colocado al final i++ porque siempre al final de cada recorrido del loop, él va a incrementar en 1 el loop

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios

Hola Jose, todo bien vos ? Muchas gracias por tu clara respuesta y el link que me pasaste me sirve un monton para dar apoyo a mi duda. Te mando un saludo , que sigas muy bien!