在画布中为一个图层设置动画时,如果存在其他图层,则图形会变得不稳定,请参见小提琴(单击“运行”以查看动画):http://jsfiddle.net/Q97Wn/
如果我更改此行:
opts.percentageIndicator.clearRect(0, 0, opts.percentageIndicator.width, opts.percentageIndicator.height);
要:
opts.percentageIndicator.clearRect(0, 0, opts.canvas.width, opts.canvas.height);
然后一切顺利,除了这将完全删除另一层。
我可以通过在每个画布中同时使用两个画布来解决这个问题,但我希望结构目的能够避免这种情况。有什么建议吗?
答案 0 :(得分:1)
首先,canvas.getContext()没有生成新的上下文,它返回已经存在的实例,所以行:
opts.centerCircle = opts.canvas.getContext('2d');
// ...
opts.percentageIndicator = opts.canvas.getContext('2d');
意味着同样的事情。
所以我建议你这样做:
http://jsfiddle.net/Volter9/Q97Wn/2/
我做了什么我只是将两个上下文都改为一个属性并且在渲染了base之后:
opts.ctx.strokeStyle = opts.indicatorColor;
祝你好运!