我有一个相当简单的网络应用程序,使用 fabric js 创建和编辑图像布局。一切似乎都很好,除了有时画布有时无法正确渲染。我试图尽可能地消除一切,它似乎是 loadFromJSON 方法(或者,我已经尝试过 fabric.util.enlivenObjects,但同样的问题)。
最奇怪的是它似乎只有大约 30% 的时间失败,其中我得到的只是空画布。刷新页面,它可能有效,也可能无效。根本没有控制台错误。结构对象的 JSON 数据来自数据库,但它是静态的,直接写入页面。它从服务器加载图像,但它们很小,而且这是在我的本地机器上,所以应该不会有太大的“滞后”。
尝试这个的函数如下:
function loadCanvasFromSchema(index) {
log('loadCanvasFromSchema, index: ' + index)
let frame = schema.frames[index]
var c = canvases[index]
c = new fabric.StaticCanvas('frame' + index, {
width: frame.width,
height: frame.height,
backgroundColor: frame.background
})
//c.setDimensions({width: '100%', height: '100%'}, {cssOnly: true})
//log(c)
// c.loadFromJSON(frame.fabric, c.renderAll.bind(c))
fabric.util.enlivenObjects(frame.fabric.objects, function(objects) {
c.add(...objects);
})
c.renderAll()
}
我确定这很愚蠢,但我有点迷路了。如果有人能指出我正确的方向,我将不胜感激。