2016-06-24 26 views
0

在我的情況下,我有10個圖像加載在查看器中具有相同的邊界。每個圖像排列在一個之後。如何控制openseadragon中多個圖像的加載順序

// source is an array of url images. 

for(i=0;i < source.length-1;i++){ 
     this.viewer.addTiledImage({ 
       tileSource: source[i], 
       index: i, 
       opacity:0 
      }); 
} 

我的目的是,以控制使用滑塊(範圍輸入)的每個圖像的不透明度,所述滑塊設置對應的圖像的不透明度爲1,而讓其他沒有不透明度。這很好。

這個想法是預載圖像和順利改變圖像。

問題

所有圖像都在同一時間縮放或平移時加載的,所以我想控制加載順序和可見光圖像優先,然後加載下一個圖像,等等。

我該怎麼做?我找不到任何方法來暫停加載瓦片。

感謝您的幫助。

回答

0

我可以通過控制opacity而不是控制網絡下載來解決我的問題,openseadragon沒有方法來控制dzi圖像級別的下載順序,所以方法是控制不透明度,因爲0 opacity不會做任何下載。感謝openseadragon撰稿人幫助我解決這個問題。

https://github.com/openseadragon/openseadragon/issues/971

1

您可以嘗試使用'open'事件並在加載前一個圖像後添加下一個圖像。例如:

var i =0, viewer = this.viewer; 
viewer.addTiledImage({ 
    tileSource: source[i], 
    index: i, 
    opacity:0 
}); 
viewer.addHandler('open', function() { 
    i++; 
    if (source[i]) { 
     viewer.addTiledImage({ 
      tileSource: source[i], 
      index: i, 
      opacity:0 
     }); 
    } else { 
     viewer.removeAllHandlers('open'); 
    } 
}); 

請注意,這是未經測試的示例代碼,但您應該明白。你應該使用removeHandler()而不是removeAllHandlers(),但這只是一個例子。

+0

感謝您的幫助 – oskararenas