动画时HTML5 Canvas不连贯的图形

时间:2014-04-17 20:16:42

标签: javascript html5 animation canvas

在画布中为一个图层设置动画时,如果存在其他图层,则图形会变得不稳定,请参见小提琴(单击“运行”以查看动画):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);

然后一切顺利,除了这将完全删除另一层。

我可以通过在每个画布中同时使用两个画布来解决这个问题,但我希望结构目的能够避免这种情况。有什么建议吗?

1 个答案:

答案 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;
祝你好运!