问题
I'm having problem finding out how I can use requestAnimationFrame
in a class.
This code is working fine:
window.onload = function () {
var width = 20;
function animation() {
width++;
var element = document.getElementById("box");
element.style.width = width + "px";
requestAnimationFrame(animation);
}
requestAnimationFrame(animation);
};
But when I try putting it into a class, I don't get any result.
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();
};
Could someone tell me what's wrong here?
回答1:
requestAnimationFrame(this.loop);
If you are passing someone else a function that they are going to call use an arrow i.e requestAnimationFrame(()=>this.loop());
or loop = () => {
More : https://www.youtube.com/watch?v=tvocUcbCupA
来源:https://stackoverflow.com/questions/28908999/use-requestanimationframe-in-a-class