3
すでに描画されているキャンバスアニメーションにフックすることはできますか? 「スタート」ボタンと「停止」ボタンで制御する必要がある3つの別々のトラックを作成しようとしていますが、最初のキャンバスの「開始」ボタンを押すと、最後のキャンバスが実行されます。複数のキャンバスアニメーションを制御する
これは私がこれまで持っているものです。
class Animation{
constructor(){
this.options = {
left : 0,
animate : false
}
let tracks = $('.line');
let self = this;
tracks.each(function(){
self.startbtn = $(this).find('button.start');
self.stopbtn = $(this).find('button.stop');
self.canvas = $(this).find('canvas').get(0);
self.canvas.width = 1000;
self.canvas.height = 30;
self.ctx = self.canvas.getContext('2d');
self.draw(self.canvas,self.ctx);
self.startbtn.bind('click',() => {
self.options.animate = true;
self.draw(self.canvas,self.ctx);
})
});
}
draw(c,ctx){
ctx.clearRect(0,0,c.height,c.width);
ctx.fillRect(this.options.left,0,1,30);
if(this.options.animate){
requestAnimationFrame(() => {
console.log('done');
this.options.left += 1;
console.log(this.options.left)
this.draw(c,ctx);
});
}
}
}
new Animation();
パーフェクト、魔法のように動作します! –