Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

131
Visualizações
I am not getting output using setInterval

I am getting no output. I'm trying to understand getInterval as I am new to JS, but can't work out why I don't get the lines displayed.

var Canvas = {
    canvas : undefined,
    ctx : undefined
};
var Mouse = {
    x : [0],
    y : [0]
};
function Drawing(width, colour){
    this.width = width;
    this.colour = colour;
    Drawing.prototype.output = function(ctx){
        ctx.strokeStyle = this.colour;
        ctx.lineWidth = this.width;
        for (var i = 0; i < Mouse.x.length-1; i++) {
            ctx.beginPath();
            ctx.moveTo(Mouse.x[i], Mouse.y[i]);
            ctx.lineTo(Mouse.x[i+1], Mouse.y[i+1]);
            ctx.stroke();
        }
    }
}
Canvas.start = function () {
    function catchAction(evt) {
        Mouse.x[Mouse.x.length] = evt.pageX; 
        Mouse.y[Mouse.y.length] = evt.pageY;
    }
        Canvas.canvas = document.getElementById("myCanvas");
        Canvas.canvas.width = Canvas.canvas.height = 600;
        Canvas.ctx = Canvas.canvas.getContext('2d');
        let drawing = new Drawing(10, 'red');
        Canvas.canvas.addEventListener("mousedown", catchAction, false);
        Canvas.canvas.addEventListener("touchstart", catchAction, false);
        window.setInterval(drawing.output(Canvas.ctx), 500);
    };
document.addEventListener( 'DOMContentLoaded', Canvas.start);

Also I am getting a Violation: Added non-passive event listener.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

The first argument to setInterval should be a string if you are going to pass in code like that.

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

Try changing it to a function like this:

window.setInterval(() => {drawing.output(Canvas.ctx)}, 500);

also try this for you other error:

document.addEventListener( 'DOMContentLoaded', (e) => {Canvas.start()});

NOTE: I haven't tested either suggestion, but I'm 99% certain the setInterval one is correct.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda