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

Use el ciclo mientras pero no me da.

en la solución intente usar el ciclo mientras para aumentar el índice del vector y así cambiar de color ya que no sabia que podía incrementar el valor de una variable solo colocándole ++ a la variable, pero al ejecutar había un error, no entiendo por qué. me pueden ayudar por favor.

3 respuestas

Hola, claro. Puedes subir una imagen del código ?

<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() {
        while (indiceColorActual < colores.length){
            indiceColorActual = indiceColorActual + 1
        }
        if (indiceColorActual = colores.length) {
            indiceColorActual = 0      
        }
        return false; //menú contextual padrón de `canvas` no sea exhibido
    }

    pantalla.oncontextmenu = alterarColor;

</script> 

Hola Jhon Smith, el problema es que al tener un while, el incremento de indiceColorActual se ejecuta repetidamente hasta alcanzar el valor 3; una vez que eso ocurre, con el if que sigue, indiceColorActual vuelve a 0, por lo que nunca cambia del color azul.