簡體   English   中英

如何等待所有圖像從loadfromjson加載到fabric js中的畫布?

[英]How to wait for all images are loaded from loadfromjson to canvas in fabric js?

當所有圖像都加載到畫布上時,我想隱藏加載器。 目前,發生的事情不是等待加載到畫布上的圖像。 幫助表示贊賞。

loader.show();
canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) {
   loader.hide();
});

文檔中你可以讀到第三個函數被調用

在創建每個結構對象之后。

所以它會在加載第一個圖像時隱藏加載器。

您可以在function(o, object)的主體內使用 counter 並檢查計數器是否達到了要顯示的預期圖像數量,然后隱藏加載程序。

該方法支持回調,您正在使用canvas.renderAll.bind(canvas)而不是調用該函數調用您自己的函數來呈現和隱藏​​加載程序。

loader.show();
canvas.loadFromJSON(json, function() {
   canvas.renderAll();
   loader.hide();
});

第三個函數僅用於在初始化后處理每個對象,並為每個對象調用一次。

您需要使用 Promise.all(),例如:

function loadImg(json){
   return new Promise((resolve,reject)=>{
      canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) {
         resolve();
      })
   });
}

然后:

loader.show();
Promise.all(jsonArr.map(loadImg)).then(loader.hide);

由於有些歧義,我無法給你一個明確的答案,但應該沿着這條線。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM