如何从网上下载一张图片并加载到应用中(伸手就有的教程)

global.Utils = {
    httpRequest : function(address, filename, callback){
        var xhr = new XMLHttpRequest()
        var self = this
        xhr.onreadystatechange = function(){
            if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status < 400)) {
                if(callback) {
                    callback(xhr, filename)
                }
            }
        }
        xhr.responseType = "arraybuffer"
        xhr.open("GET", address, true)
        xhr.send()
    },

    saveTemp : function(file_name, data){
        var storage_path = jsb.fileUtils ? jsb.fileUtils.getWritablePath() : '/'
        
        var update_temp_dir = storage_path + "temp/" + file_name
        var dir_path = update_temp_dir.substring(0, update_temp_dir.lastIndexOf("/"))
        if (!jsb.fileUtils.isDirectoryExist(dir_path)){
            jsb.fileUtils.createDirectory(dir_path)
        }

        return jsb.fileUtils.writeDataToFile(data, update_temp_dir)
    },   

    getTemp : function(file_name, callback){
        var storage_path = jsb.fileUtils ? jsb.fileUtils.getWritablePath() : '/'
        var update_temp_dir = storage_path + "temp/" + file_name
        cc.loader.load(update_temp_dir, cc.Texture2D, function(err, asset){
            callback(err, asset)
        })
    },

    dowloadImage : function(url, callback){
        var name_arr = new String(url).split("/")
        var name = name_arr[name_arr.length - 1]
        global.Utils.getTemp(name, function(err, asset){
            if(!err) {
                callback(new cc.SpriteFrame( asset ))
            } else {
                global.Utils.httpRequest(url, name, function(xhr, name){
                    var tmp_data = new Uint8Array(xhr.response);
                    var res = global.Utils.saveTemp(name, tmp_data)
                    if(res){
                        global.Utils.getTemp(name, function(err, asset){
                            callback(new cc.SpriteFrame( asset ))
                        })
                    }
                })
            }  
        })
    }
}