Skip to content

Commit cbc8b8a

Browse files
committed
Merge pull request #2486 from man2/develop
Remote Texture Loading Fix
2 parents ce02271 + 5908d14 commit cbc8b8a

File tree

3 files changed

+29
-36
lines changed

3 files changed

+29
-36
lines changed

CCBoot.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -755,13 +755,21 @@ cc.loader = /** @lends cc.loader# */{
755755
else if (option !== undefined)
756756
cb = option;
757757

758-
var img = new Image();
758+
var img = this.getRes(url);
759+
if (img) {
760+
cb && cb(null, img);
761+
return img;
762+
}
763+
764+
img = new Image();
759765
if (opt.isCrossOrigin && location.origin != "file://")
760766
img.crossOrigin = "Anonymous";
761767

762768
var lcb = function () {
763769
this.removeEventListener('load', lcb, false);
764770
this.removeEventListener('error', ecb, false);
771+
772+
cc.loader.cache[url] = img;
765773
if (cb)
766774
cb(null, img);
767775
};
@@ -802,7 +810,7 @@ cc.loader = /** @lends cc.loader# */{
802810
type = cc.path.extname(url);
803811
}
804812

805-
var obj = self.cache[url];
813+
var obj = self.getRes(url);
806814
if (obj)
807815
return cb(null, obj);
808816
var loader = null;

cocos2d/core/textures/CCTextureCache.js

+9-18
Original file line numberDiff line numberDiff line change
@@ -349,24 +349,15 @@ if (cc._renderType === cc._RENDER_TYPE_CANVAS) {
349349

350350
tex = locTexs[url] = new cc.Texture2D();
351351
tex.url = url;
352-
if (!cc.loader.getRes(url)) {
353-
if (cc.loader._checkIsImageURL(url)) {
354-
cc.loader.load(url, function (err) {
355-
cb && cb.call(target);
356-
});
357-
} else {
358-
cc.loader.loadImg(url, function (err, img) {
359-
if (err)
360-
return cb ? cb(err) : err;
361-
cc.loader.cache[url] = img;
362-
cc.textureCache.handleLoadedTexture(url);
363-
cb && cb.call(target, tex);
364-
});
365-
}
366-
}
367-
else {
368-
tex.handleLoadedTexture();
369-
}
352+
var loadFunc = cc.loader._checkIsImageURL(url) ? cc.loader.load : cc.loader.loadImg;
353+
loadFunc.call(cc.loader, url, function (err, img) {
354+
if (err)
355+
return cb && cb.call(target, err);
356+
cc.textureCache.handleLoadedTexture(url);
357+
358+
var texResult = locTexs[url];
359+
cb && cb.call(target, texResult);
360+
});
370361

371362
return tex;
372363
};

cocos2d/core/textures/TexturesWebGL.js

+10-16
Original file line numberDiff line numberDiff line change
@@ -882,24 +882,18 @@ cc._tmp.WebGLTextureCache = function () {
882882
return tex;
883883
}
884884

885-
if (!cc.loader.getRes(url)) {
886-
if (cc.loader._checkIsImageURL(url)) {
887-
cc.loader.load(url, function (err) {
888-
cb && cb.call(target);
889-
});
890-
} else {
891-
cc.loader.loadImg(url, function (err, img) {
892-
if (err)
893-
return cb ? cb(err) : err;
894-
cc.loader.cache[url] = img;
895-
cc.textureCache.handleLoadedTexture(url);
896-
cb && cb.call(target, tex);
897-
});
898-
}
899-
}
900-
901885
tex = locTexs[url] = new cc.Texture2D();
902886
tex.url = url;
887+
var loadFunc = cc.loader._checkIsImageURL(url) ? cc.loader.load : cc.loader.loadImg;
888+
loadFunc.call(cc.loader, url, function (err, img) {
889+
if (err)
890+
return cb && cb.call(target, err);
891+
cc.textureCache.handleLoadedTexture(url);
892+
893+
var texResult = locTexs[url];
894+
cb && cb.call(target, texResult);
895+
});
896+
903897
return tex;
904898
};
905899
_p = null;

0 commit comments

Comments
 (0)