2009-11-04 22 views
0

我有一个Javascript地图工具包,它使用图像对象来加载图像。每次移动/调整地图大小时,都会加载许多图像。但是我想知道如何在执行移动/调整大小操作后加载所有图像时启动某个功能。我如何知道一批图像被加载?

有没有一种方法可以创建像“allimages.onload = function(){}”这样的侦听器?

或者是否有任何解决方法?

+0

什么是JavaScript地图工具包?任何示例代码,链接到?JavaScript地图工具包的主页? – jitter 2009-11-04 10:42:30

+0

另外:当所有图像加载完成时会触发此功能,该怎么办?也许我们可以帮助你实现相同的结果,而不需要实现这样一个监听器,这将很难创建。 – 2009-11-04 10:53:00

回答

1

您将不得不保留尚未加载的图像的数量,并在出色图像计数达到0时调用最终功能。

function nofunction() {} 

function loadImages(srcs, callback) { 
    var images= []; 
    var imagen= srcs.length; 
    for (var i= 0; i<srcs.length; i++) { 
     var image= new Image(); 
     image.onload=image.onerror= function() { 
      imagen--; 
      if (imagen==0) { 
       this.onload=this.onerror= nofunction; 
       callback(); 
      } 
     }; 
     image.src= srcs[i]; 
     images.push(image); 
    } 
    return images; 
} 

... 

var images= loadImages(['/img/1.gif', '/img/2.gif'], function() { 
    alert('yay'); 
}); 

for (var i= 0; i<images.length; i++) 
    mapelement.appendChild(images[i]); 
+0

谢谢。也许这就是我想要的,我会很快尝试 – 2009-11-05 01:04:19

0

不久前我写了a blog post关于检测单个图像的负载。您可以使用该示例来构建检查是否加载了所有图像的函数。我希望这会有所帮助。

相关问题