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

No responde evento de clic derecho

La solución que hice fue de lo más sencilla a comparación de la de la solución. Entiendo que no utilice arreglos ni nada para optimizar, sin embargo, quisiera saber los errores que cometi, o si de plano no es ni un poco viable mi solución.

Intente responderlo sin ayuda y pues no pude ni hacer funcionar el evento de clic derecho, no se si lo escribí mal, o es porque la logica dentro de la función está mal.

Este es mi código:

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

<script>
    var pantalla = document.querySelector("canvas");
    var pincel = pantalla.getContext("2d");    
    var color = "blue" //Agregué esta linea para comenzar en blue.

    pincel.fillStyle = "grey";
    pincel.fillRect(0,0,600,400); 

    function exhibirAlerta(evento){
        var x = evento.pageX - pantalla.offsetLeft; //pos x
        var y = evento.pageY - pantalla.offsetTop; //pos y

        console.log(evento);
        alert(x + ", " + y); 
    }

    function dibujarCirculo(evento){
        var x = evento.pageX - pantalla.offsetLeft; //pos x
        var y = evento.pageY - pantalla.offsetTop; //pos y

        pincel.fillStyle = color; //Modifiqué esta línea para que se altere el color.
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
        console.log(x + ", " + y); 
    }



//Creé esta función para alterar color.

    function alterarColor(evento){ 
        if(color=="blue"){
            var color = "red";
            alert("Haz cambiado al color 2: " + color);
        }
        if(color=="red"){
            var color = "green";
            alert("Haz cambiado al color 3: " + color);
        }
        if(color=="green"){
            var color = "blue"
            alert("Haz cambiado al color 1: " + color);
        }

    }

    pantalla.onclick = dibujarCirculo;

    //Aquí mandé a llamar a la función para alterar color mediante clic derecho
    pantalla.oncontextmenu = alterarColor; 

</script>
1 respuesta

En la funcion alterarColor estas creando la variable color en vez de asignar el valor a la variable global. Solo tenes que eliminar los var. Adicional pusiste los colores en una secuencia que se cumplen siempre todos los if. Con else if se resuelve.