在封装达芬奇的时候,遇到了在一个函数里面 无法触发刷新 canvas 的问题 ,经过测试发现, canvas.flush只会针对已有的一处进行刷新。
function drawFrame() {canvas.clear(CanvasKit.Color(255, 255, 255, 1.0));davinci.drawStarPath({ x, y });canvas.flush();}function drawStarPath(param) {// ...canvas.drawPath(path, paint);canvas.flush();}
上述方法中,drawStarPath 中的 drawPath 方法是失效的。最后渲染出来的是白色画布。而注释掉 drawFrame 的 flush 后,就能显示星星。
因此在封装上,无法直接将渲染集成进去,应该封装的是一个对象,将相应的参数灌进去,然后返回需要的对象。最后统一进行渲染。
