javascript图片预加载

/**
 * 图片资源管理器
 */
(function() {

    var ImageManager = {
        /**
         * @private
         */
        __loadList : {},
        /**
         * @private
         */
        __loadImage : function(item, callback) {
            var image = new Image();
            image.onload = function() {
                ImageManager.__loadList[item.id] = image;
                callback();
            }
            image.src = item.src;
        },
        /**
         * 加载图片资源
         * @param {Array} images @format {id: '', src: ''}
         * @param {Function} statechange
         */
        load : function(images, statechange, __index) {
            __index = __index || 0;
            if(images[__index]) {
                ImageManager.__loadImage(images[__index], function() {
                    ImageManager.load(images, statechange, __index + 1);
                });
            }
            statechange(__index);
        },
        /**
         * 获取已加载的Image对象
         * @param {String} id
         */
        get : function(id) {
            return this.__loadList[id];
        }
    }

    my.ImageManager = ImageManager;
})();
图片文件资源类
/**
 * 图像资源列表
 */
function getImageRes() {
    return [{
        id : 'index',
        src : 'images/v5_loading.png'
    },{
		id:"bg_hole",
		src:"images/v5_run1.png"
	},{
		id:"bg_holeHide",
		src:"images/v5_run2.png"
	},{
		id:"mouse",
		src:"images/v5_run3.png"
	},{
		id:"help",
		src:"images/v5_index.png"
	},{
		id:"star",
		src:"images/v5_gowc_nov5.png"
	},{
		id:"star",
		src:"images/v5_gowc_nov5_item.png"
	},{
		id:"icon",
		src:"images/v5_gowc_havev5.png"
	},{
	    id:"time_roller",
		src:"images/wc.png"
	}];
}


预加载主类
(function () {
    var imageResources = getImageRes();
    my.ImageManager.load(imageResources, loadImageResources);
    /**
     * 加载图片资源
     */
    function loadImageResources(number) {
//循环加载图片 并记录进度百分比
        $('#progressText').html((number / imageResources.length * 100) + '%');
        if (number < imageResources.length) {
            return false;
        }

        //执行后续代码
            init();
        
    }});


使用:
 
在canvas里可以使用 
my.ImageManager.get('index')方法获取Image

html的img 或者 background-image 则可以直接照常写  因为图片已经在缓存中 不会再加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值