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

Duda

La primera duda es que no me respeta el orden de los colores pone punto rojo, doy click derecho y salta al azul y despues regresa al rojo y casi no pone verde.

<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 inicioColor = 0;
    var colores = ["blue", "red", "green"];

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

    pantalla.onclick = dibujarCirculo;

    function alterarColor() {
        inicioColor++;
        if(inicioColor >= colores.length){
            inicioColor=0;
        }
        return false;
    }

    pantalla.oncontextmenu = alterarColor;

</script> 
2 respuestas

Probe tu código y me funciona bien, lo único que desconozco es¿ porque retorna un valor de false tu función alterarColor())?

Retorna false para que no salte el contextmenu, que es esa ventana que aparece en una página cuando presionas el clic derecho.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Hay otra forma de hacer lo mismo y es poner event.preventDefault(); pero antes tienes que hacer que la función reciba el evento, así: function alterarColor(event)