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

[Duda] que valor tiene la variable booleana

no me quedo muy claro que valor tiene la variabale puedoDibujar dentro de la funcion dibujarCirculo dentro de la condicion if al principio se declara como false, pero cuando se usa para declarar la funcion no tiene asignado un valor por escrito

<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 puedoDibujar = false;

    function dibujarCirculo(evento) {

        if(puedoDibujar) {   //en esta parte no se que valor tiene que ser la variable para que la condicion if funcione
            var x = evento.pageX - pantalla.offsetLeft;
            var y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = 'blue';
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
        }

    }

    pantalla.onmousemove = dibujarCirculo;

    function habilitarDibujar() {

        puedoDibujar = true;
    }

    function deshabilitarDibujar() {

        puedoDibujar = false;
    }

    pantalla.onmousedown = habilitarDibujar;

    pantalla.onmouseup = deshabilitarDibujar;

</script>
2 respuestas

Hola!

Para empezar, la variable puedoDibujar está declarada como una variable global, es decir, todas las funciones tiene acceso a dicha variable, en este caso, su valor es modificado mediante las funciones habilitarDibujar() y deshabilitarDibujar(), estas funciones están asignadas a pantalla.onmousedown y pantalla.onmouseup respectivamente, lo que quiere decir que cuando el usuario haga clic, se ejecutará la función habilitarDibujar() y cuando suelte el clic, se ejecutará deshabilitarDibujar(), por otra parte, la función dibujarCirculo() únicamente valida , en el if, el valor que es asignado por las funciones habilitarDibujar() y deshabilitarDibujar()

Espero sea de tu ayuda

Saludos!

Sergio, tal como dijo el compañero arriba el valor de la variable "puedoDibujar" depende de las funciones habilitarDibujar() y deshabilitarDibujar() de acuerdo a los eventos pantalla.onmousedown y pantalla.onmouseup respectivamente; es decir que si se presiona un boton del mouse entonces "puedoDibujar" va a ser "true" y la ejecución va a entrar al "if" dentro de la función dibujarCirculo (seria lo mismo que poner "if (puedoDibujar==true) {}" ); caso contrario cuando no esté presionado ningún boton... Saludos