canvas基于不同浏览器的drawImage兼容性问题
2016-03-07 00:00
225 查看
//------------基于不同浏览器对drawImage的兼容
function preImage(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对象
};
}
//测试代码:
var imgSrc="img/"+obj.carDire+"/"+obj.carColor+".png"
preImage(imgSrc,function(){
ctx.drawImage(this,obj.carPointx,obj.carPointy,obj.imgWidth,obj.imgHeigh)
})
imgSrc=null
function preImage(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对象
};
}
//测试代码:
var imgSrc="img/"+obj.carDire+"/"+obj.carColor+".png"
preImage(imgSrc,function(){
ctx.drawImage(this,obj.carPointx,obj.carPointy,obj.imgWidth,obj.imgHeigh)
})
imgSrc=null
相关文章推荐
- 高德API的使用
- sessionStorage和localStorage的用法
- js对cookie的操作
- Mybatis传多个参数(三种解决方案)
- ios php mysql 支持unicode表情 插入问号问题
- 什么是抽象?
- Java的参数传递
- java单例模式
- js的验证身份证号码
- Backbone 基本操作整理
- mangodb的安装
- day07 jdbc基础
- 程序员的自我提高-写博客
- JVM介绍
- JVM内存区域划分及其管理机制
- php解决跨域请求的三种方法
- 正向代理和反向代理
- 二维码的生成
- 自定义TabelView头部试图(View)和尾部试图(View)
- MAVEN POM dependencies and Dependency Exclusions