2013-06-03 71 views
1

我已經開始嘗試使用WebView來顯示本地存儲的HTML文件,這些文件可以播放一些相當基本的Canvas動畫(使用CreateJS庫)。在展示頁面之前「預加載」畫布動畫的方法?

他們似乎真的打得很好,但有些時候,頁面加載和播放動畫完全加載圖像之前(例如,一個動畫有一個相當大的背景圖像〜1MB)

有沒有辦法要麼「加速」事情,「預加載/預取」圖像(如果需要,還有其他資源),或者等到應用程序將圖像加載到內存中(如果是這樣),然後再顯示和啓動動畫?

要添加到最後一個問題,有沒有辦法「暫停」動畫,只有在圖像完全加載後才能播放?

感謝

回答

0

嘗試onload事件時運行後,所有圖像或外部資源加載:

$(window).load(function(){ 
    //code 
}); 

或者您也可以與單個圖像加載事件嘗試,當他們已加載運行代碼:

$('img.imgClass').load(function(){ 
    // The image loaded,,, code 
}); 
+0

對不起,傳入的愚蠢問題,但這是要包含在我的JavaScript代碼,是否正確? –

0

的CreateJS套件包括PreloadJS,其是預加載內容的相當不錯的方式所使用的EaselJS,或任何其他內容爲亞光呃。 http://preloadjs.com

您可以預先抓取圖像,JavaScript,音頻,JSON /文本/ XML,SVG,CSS等

var queue = new createjs.PreloadJS(); 
queue.addEventListener("complete", handleComplete); 
queue.loadManifest([ 
    {id: "image", src:"image.png"}, 
    {id: "image2", src: "image2.jpg"}, 
    {id:"script", src:"script.js"} 
]); 

function handleComplete(event) { 
    var image = queue.getResult("image"); // Returns an image tag 
} 

有一些變通方法來預加載音頻(兼容多種格式),或使用標籤加載來解決跨域問題。退房的文檔的更多: http://www.createjs.com/Docs/PreloadJS/modules/PreloadJS.html

0

你可以這樣說: 創建應該做這樣的功能:

loadData(); 

loadData = function() 
{ 
preloader = new createjs.LoadQueue(true); 
     preloader.addEventListener("complete",this.handleComplete.bind(this)); 

     var manifest = [ 

      {src:"./images/yourIMAGE.PNG"}, 

     ]; 


     preloader.loadManifest(manifest); 
    }; 


    handleComplete = function() 
    { 
     console.log("Load complete!"); 
     //other function 
    }; 


} 

這是一個辦法做到這一點。如果您有任何問題,請告訴我。

+0

@蘭尼這樣做的方式不再是現實。所以你不能使用** createjs.PreloadJS(); ** – CMS