2009-11-04 57 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關於檢測單個圖像的負載。您可以使用該示例來構建檢查是否加載了所有圖像的函數。我希望這會有所幫助。

相關問題