Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Duda

Espero se encuentren bien, estuve intentando alterar el código, pero no me resulta. alguna sugerencia. gracias!


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

       var pantalla= document.querySelector ("canvas");
        var pincel= pantalla.getContext("2d");

        pincel.fillStyle = "grey"; //propiedad o caracteristica
        pincel.fillRect(0,0,600,400); //funcion

function exibirAlerta(evento){
      var x= evento.pageX - pantalla.offsetLeft;
      var y= evento.pageY - pantalla.offsetTop;
        console.log(evento);        
        alert(x + "," + y);
    }
    function dibujarCirculo(evento){
      var x= evento.pageX - pantalla.offsetLeft;
      var y= evento.pageY - pantalla.offsetTop;
      var listaColor=["blue", "red","green" ];

        pincel.fillStyle=listaColor;
        pincel.beginPath();
        pincel.arc(x,y,10,0,2*3.14);
        pincel.fill();
        console.log(x + "," + y);
    }
    pantalla.onclick = dibujarCirculo;

    function listaColor() {
       var listaColor=["blue", "red","green" ];

    }
    pantalla.oncontextmenu = listaColor;

</script>
1 respuesta
solución!

Dentro de tu función dibujarCirculo no puedes hacer esto pincel.fillStyle=listaColor, ya que estas asignándole un arreglo, pero esa propiedad solo recibe cadenas de texto. Por lo que debe de ser así pincel.fillStyle = listaColor[colorActual], donde colorActual debe ser una variable que inicialices con 0, ya que se ira incrementando cuando presiones el click derecho. Dicha variable debe ser definida fuera del ámbito de tu función, así como también el arreglo.

Luego para cambiar de color puedes crear la siguiente función:

function cambiarColor() {
    colorActual++;
    if (colorActual == listaColor.length) {
      colorActual = 0;
    }
    return false;
  }

La funcion que haz creado listaColor no realiza ninguna acción, asi que debes eliminarla. Y así ya puedes cambiar pantalla.oncontextmenu = listaColor por pantalla.oncontextmenu = cambiarColor

Espero te sirva. Saludos.