当前位置:  开发笔记 > 编程语言 > 正文

你如何处理html5的画布图像加载异步?

如何解决《你如何处理html5的画布图像加载异步?》经验,为你挑选了1个好方法。



1> Patrick Evan..:

在使用画布之前预加载图像.将所有图像URL放入一个数组中,循环遍历数组创建新图像,当它们全部加载时,调用一个将启动画布工​​作的函数.

以下片段使用原生JS Promises,但如果支持没有本机Promise的旧浏览器,您可以以类似的方式使用Q或jQuery库

var images = ['imageurl.jpg','imageurl2.jpg','imageurl3.jpg'];
var loadedImages = {};
var promiseArray = images.map(function(imgurl){
   var prom = new Promise(function(resolve,reject){
       var img = new Image();
       img.onload = function(){
           loadedImages[imgurl] = img;
           resolve();
       };
       img.src = imgurl;
   });
   return prom;
});

Promise.all(promiseArray).then(imagesLoaded);

function imagesLoaded(){
   //start canvas work.

   //when needing to draw image, access the loaded image in loadedImages
   ctx.drawImage(loadedImages['imageurl.jpg'], 300, 100);
}

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有