Я использую последнюю версию:изображение не загружается при использовании canvas.loadFromJSON в Fabric.js 1.3.0
http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.3.0/fabric.min.js
тест ниже код имитирует холст вы сэкономите через 1 секунду. Затем загрузите его из JSON. Это работает в более старых версиях, затем на 1.3.0 он перестает работать. Вы должны держать положить некоторые тайм-аут, как:
setTimeout(function(){canvas.renderAll()},500);
, чтобы заставить его работать в разы, но не все время.
var img= "https://www.google.com/images/srpr/logo3w.png";
fabric.Image.fromURL(img, function(img) {
img.set({
left: 200,
top: 200
});
canvas.add(img);
canvas.renderAll();
});
setTimeout(function(){
var json=JSON.stringify(canvas);
canvas.clear();
canvas.loadFromJSON(json);
canvas.renderAll();
//setTimeout(function(){canvas.renderAll()},500) // adding a timeout seems to be the only fix.
},1000)
Как мне сделать рендер, не добавляя некоторые таймауты, как раньше?
Привет Я пробовал здесь http://upmcwest.com/rinkupdates/boardjs/f1.htm (нажмите просмотреть исходный код) и результат тот же. – user2636123
Только что обновленный выше ответ - используйте 'loadFromJSON' вместо' loadFronJson'. – Kienz
Да, это так! Я думаю, что в этой версии, если у JSON есть изображение, требуется некоторое время, чтобы отобразить все, и вы получите мерцание. – user2636123