Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 2 da Aula 3 - Nosso primeiro jogo

Caros, como posso colocar event.preventDefault() nesse meu código? pois quando clico com o botão direito aparece a caixa opções. Alguém pode me ajudar por favor ?

<meta charset="UTF-8" />
<canvas id="tela" width="600" height="400"></canvas>

<script>

var tela = document.getElementById("tela");
var c = tela.getContext("2d");

c.fillStyle="gray";
c.fillRect(0,0,600,400);

var pintaNoCanvas = function(evento, color){
    var x = evento.pageX - tela.offsetLeft;
    var y = evento.pageY - tela.offsetTop;
    c.fillStyle=color;
    c.beginPath();
    c.arc(x,y,10,0,2*3.14);
    c.fill();
    console.log(x+", "+y);
};

var quandoClicado = function(evento){
    if(evento.button <=1){
        pintaNoCanvas(evento,"blue");
    };
    if(evento.button == 2){
        pintaNoCanvas(evento,"red");
    };
};

tela.onmousedown = quandoClicado;

</script>
4 respostas

Vc quer bloquear o botão direito? É isso?

solução!

Você pode colocar a chamada do event.preventDefault() no final da sua função quandoClicado e passar ela de referencia para os eventos de click e contextmenu do canvas.

Segue exemplo:

var quandoClicado = function(evento){
    if(evento.button <=1){
        pintaNoCanvas(evento,"blue");
    };
    if(evento.button == 2){
        pintaNoCanvas(evento,"red");
    };
    event.preventDefault();
};

tela.onclick = quandoClicado;
tela.oncontextmenu = quandoClicado;

Olá Mauricio, não, quero bloquear só o menu que aparece quando clicado com o botão direito, quero que ainda pinte de vermelho.

Obrigado Djonathan Barros !

Fiz as adaptações que sugeriu, deu certo.

:)