【发布时间】:2016-08-18 02:03:29
【问题描述】:
是否可以挂钩到已经绘制好的 Canvas 动画? 我正在尝试创建 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();
【问题讨论】:
标签: javascript html canvas