在我的情况下,我在具有相同边界的查看器中加载了10个图像。每张图片都排在后面。
// 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 :(得分:1)
您可以尝试使用&#39; open&#39;事件并在上一个图像加载后添加下一个图像。类似的东西:
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(),但这只是一个例子。
答案 1 :(得分:0)
我可以通过控制不透明度而不是控制网络下载来解决我的问题,openseadragon没有方法来控制dzi图像级别的下载顺序,所以方法是控制不透明度,因为0不透明度不做任何下载。感谢openseadragon贡献者帮助我解决这个问题。