Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

una duda del programa

En el momento que cambia de color el return=false es la ejecucion del click derecho, y cada vez que doy click vuelve al azul y luego cambia, para iterar u cambio directo, tengo que agregar otra funcion? que pase directo de azul a verde e rojo, y no azul verde, azul- rojo. gracias

<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> 
2 respuestas

Perdon pero no entendi tu pregunta, podrias aclararla.

function alterarColor() { indiceColorActual++;

if(indiceColorActual>= colores.length) { // VE LA NOTA A PIE solucion: if(indiceColorActual > colores.length)

         indiceColorActual = 0;
    }
    return false; 
}

tu condicion indica que se cumple si tu variable 'indiceColorActual' es igual o menor que colores.length de manera que cuando hagas clic por tercera vez tu variable indiceColorActual sera = 2 y tu condicion se cumplira lo que retornara su valor a 0.