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

Chamada de função com Canvas.

Olá, Resolvi montar meu programa de uma forma diferente. Como gosto de declarar a função no início do escopo eu preferi relalizar a chamada de uma forma diferente do que foi feita na aula.

<meta charset="utf-8" />

<html>
  <head>
    <title>Meu primeiro jogo gráfico com JavaScript</title>
  </head>

  <body>
    <h1>Clique !</h1>
    <canvas width="600" height="400" id="quadro"></canvas>
    <script>

      function colorir() {
        alert("Alguém clicou no canvas!");
      }

      var quadro = document.getElementById("quadro");
      var r = quadro.getContext("2d");

      r.fillStyle = "yellow";
      r.fillRect(0, 0, 600, 400);

      quadro.onclick = colorir();

    </script>

  </body>
</html>

Porém quando eu realizo a chama da função com "quadro.onclick = colorir();" o alert não é informado. Alguém pode me explicar o porque? Se eu fizer com a outra forma de chamada de função ensinada na aula o programa funciona perfeitamente.

4 respostas
solução!

Na linha 23 tire os ( ) .

dessa forma: quadro.onclick = colorir;

Obrigado Markus, mas gostaria de saber porque isso acontece? A chamada de função acontece com o "()" certo? Pelo menos foi isso que aprendi no curso anterior.

Isso mesmo. mas quando você coloca os "()" ele automaticamente chama a função, por esse motivo tiramos os "()". Quando o nome colorir é passado para quadro.onclick ele já identifica que é uma função e faz a chamada.

Obrigado Markus, ajudou muito! :D

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software