js canvas 畫圖線程處理

canvas畫圖其實是個異步的過程,如果不按照下面的方式在回調中顯示圖片,就會發生第一次畫圖時,加載不出來的情況。

 /** *這裏寫成成員方法的樣子,根據需要修改即可
     * 預加載畫圖,因爲canvas畫圖是異步的
     * @param url
     * @param callback
     */
    preImage:function(url,callback){  
        var img = new Image(); //創建一個Image對象,實現圖片的預下載  
        img.src = url;  

        if (img.complete) { // 如果圖片已經存在於瀏覽器緩存,直接調用回調函數  
           callback.call(img);  
           return; // 直接返回,不用再處理onload事件  
        }  

        img.onload = function () { //圖片下載完畢時異步調用callback函數。  
            callback.call(img);//將回調函數的this替換爲Image對象  
        };  
   },  
發佈了38 篇原創文章 · 獲贊 9 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章