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 ))
})
}
})
}
})
}
}