typescript - Bruk requestAnimationFrame i en klasse


Jeg har problemer med å finne ut hvordan jeg kan bruke requestAnimationFrame i en klasse.

Denne koden fungerer fint:

window.onload = function () {
    var width = 20;
    function animation() {
        width++;
        var element = document.getElementById("box");
        element.style.width = width + "px";
        requestAnimationFrame(animation);
    }
    requestAnimationFrame(animation);
};

Men når jeg prøver å sette det inn i en klasse, får jeg ikke noe resultat.

class Animation{
    width: number = 20;

    constructor() {
        requestAnimationFrame(this.loop);
    }
    loop() {
        this.width++;
        var element = document.getElementById("box");
        element.style.width = this.width + "px";
        requestAnimationFrame(this.loop);
    }
}
window.onload = function () {
    var animation = new Animation();
};

Kan noen fortelle meg hva som er galt her?

Svar #1

requestAnimationFrame(this.loop); Hvis du sender noen en funksjon som de skal kalle, bruk en pil, f.eks. requestAnimationFrame(()=>this.loop()); eller loop =() => {

Mer: https://www.youtube.com/watch?v=tvocUcbCupA

Relaterte artikler