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

Parâmetro misterioso

Bom dia!

Consegui realizar os exercícios e minha dúvida é mais sobre uma parte do código do que sobre como fazer algo corretamente. Desculpem. Estou postando aqui porque não sabia onde deveria ser postado...

Bom... vamos lá...

Tanto oncontextmenu quanto onclick recebem como parâmetro um "evento". No entanto, meu código em nenhum momento declarou ou atribuiu qualquer valor à variável "evento" para que esta tivesse qualquer informação. Mesmo assim, este parâmetro tinha conteúdo e foi crucial para a manipulação sendo realizada neste código.

De onde vem esta informação? Que outras estão escondidas (se é que existem outras e se é que realmente estão escondidas) e como descobrir o que tenho a disposição para uso?

4 respostas

Pelo que entendi sua duvida é relacionada aos exercícios da Aula 4, nas funções devemos passar dados para elas processarem, assim passamos argumentos ou parâmetros. Vou colocar um exemplo dos exercícios que fizemos pra ver se ajuda.

  <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 atiraAzul = function(evento) { //aqui colocamos o parametro
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        c.fillStyle = "blue";
        c.beginPath();
        c.arc(x, y, 10, 0, 2 * 3.14);
        c.fill();
    };

    var atiraVermelho = function(evento) {
        var x = evento.pageX - tela.offsetLeft;
        var y = evento.pageY - tela.offsetTop;

        c.fillStyle = "red";
        c.beginPath();
        c.arc(x, y, 10, 0, 2 * 3.14);
        c.fill();
    };


    tela.addEventListener('mousedown', function(evento){ // // nesta linha ligamos o evento do objeto a uma função que vai trata-la.
    switch(evento.which){
        case 1:
            console.log("Botao Esquerdo");
            tela.onclick = atiraAzul; 
            break;
        case 3:
            console.log("Botao Direito");
            tela.oncontextmenu = atiraVermelho;
            break;
        default:
            console.log("outro");  
      }
    }, false);
  </script>

A regra sempre é : function nomeDaFuncao ( parâmetros ) { código da função } Pode ser sem retorno ou com retorno, e pode ter vários parâmetros.

Pelo que entendi espero ter dado um Help a você ! Pra você entender melhor tem um link pro site que usei no curso https://developer.mozilla.org/pt-BR/ Tudo em inglês mais temos que praticar.

Abraços.

Obrigado pela presteza Rodrigo,mas não era bem isso... Na verdade,minha duvida é sobre o parâmetro "evento" especificamente. Nao declarei nenhuma var evento para poder passa-la como parametro da função onclick por exemplo... Pelo que entendi,preciso ter um dado para poder manipula-lo... De onde vem "evento"?

solução!

Oi Clayton, Então, esse parâmetro event que vc está falando é criado automaticamente já, vc não precisa declarar ele ou criá-lo, é só recebe-lo como parâmetro da função do seu event listener. Vc pode dar qualquer nome para ele dentro da função, os mais comuns que vc vai encontrar em código alheio é event e e.

Essa variável é um objeto do tipo Event no javascript e é uma classe/interface que representa um evento, ou seja, vc pode acessar essa variável e para realizar diversas ações de um evento.

Tem mais informações na documentação.

https://developer.mozilla.org/en-US/docs/Web/API/Event

Espero ter ajudado! Abraço!

Ajudou sim Yuri. Muito obrigado!!