加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 trentswd 于 2015-12-27 01:12 编辑
这个问题很早就看RPGMAKERWEB上讨论过了,当时没仔细看
最近看了看,惊了
RMMV的Image Load的实现是这样的:
ImageManager.loadNormalBitmap = function(path, hue) { var key = path + ':' + hue; if (!this._cache[key]) { var bitmap = Bitmap.load(path); bitmap.addLoadListener(function() { bitmap.rotateHue(hue); }); this._cache[key] = bitmap; } return this._cache[key]; }; ImageManager.clear = function() { this._cache = {}; };
ImageManager.loadNormalBitmap = function(path, hue) {
var key = path + ':' + hue;
if (!this._cache[key]) {
var bitmap = Bitmap.load(path);
bitmap.addLoadListener(function() {
bitmap.rotateHue(hue);
});
this._cache[key] = bitmap;
}
return this._cache[key];
};
ImageManager.clear = function() {
this._cache = {};
};
按照这个用法,每个载入的图片都会保存在ImageManager._cache中,根本不会释放,也没有什么先入先出、最少使用先出之类的清空方法
只有使用ImageManager.clear才会清空,然而默认脚本里面压根就没调用过这个方法
理论上游戏很大的话,随着游戏时间的增加,最后会把所有的图片都读到内存里面去?还是说Html5的Image会自动释放? |