|
//-----------------------------------------------------------------------------
// ImageManager
// 图像管理器
// The static class that loads images, creates bitmap objects and retains them.
// 这个静态的类 读取 图像 创造图片对象 和 保存他们
function ImageManager() {
throw new Error('This is a static class');
}
//储存
ImageManager._cache = {};
ImageManager.loadAnimation = function(filename, hue) {
return this.loadBitmap('img/animations/', filename, hue, true);
};
ImageManager.loadBattleback1 = function(filename, hue) {
return this.loadBitmap('img/battlebacks1/', filename, hue, true);
};
ImageManager.loadBattleback2 = function(filename, hue) {
return this.loadBitmap('img/battlebacks2/', filename, hue, true);
};
ImageManager.loadEnemy = function(filename, hue) {
return this.loadBitmap('img/enemies/', filename, hue, true);
};
ImageManager.loadCharacter = function(filename, hue) {
return this.loadBitmap('img/characters/', filename, hue, false);
};
ImageManager.loadFace = function(filename, hue) {
return this.loadBitmap('img/faces/', filename, hue, true);
};
ImageManager.loadParallax = function(filename, hue) {
return this.loadBitmap('img/parallaxes/', filename, hue, true);
};
ImageManager.loadPicture = function(filename, hue) {
return this.loadBitmap('img/pictures/', filename, hue, true);
};
ImageManager.loadSvActor = function(filename, hue) {
return this.loadBitmap('img/sv_actors/', filename, hue, false);
};
ImageManager.loadSvEnemy = function(filename, hue) {
return this.loadBitmap('img/sv_enemies/', filename, hue, true);
};
ImageManager.loadSystem = function(filename, hue) {
return this.loadBitmap('img/system/', filename, hue, false);
};
ImageManager.loadTileset = function(filename, hue) {
return this.loadBitmap('img/tilesets/', filename, hue, false);
};
ImageManager.loadTitle1 = function(filename, hue) {
return this.loadBitmap('img/titles1/', filename, hue, true);
};
ImageManager.loadTitle2 = function(filename, hue) {
return this.loadBitmap('img/titles2/', filename, hue, true);
};
//读取图片
ImageManager.loadBitmap = function(folder, filename, hue, smooth) {
if (filename) {
var path = folder + encodeURIComponent(filename) + '.png';
var bitmap = this.loadNormalBitmap(path, hue || 0);
bitmap.smooth = smooth;
return bitmap;
} else {
return this.loadEmptyBitmap();
}
};
//读取空图片
ImageManager.loadEmptyBitmap = function() {
if (!this._cache[null]) {
this._cache[null] = new Bitmap();
}
return this._cache[null];
};
//读取正常图片
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.isReady = function() {
for (var key in this._cache) {
var bitmap = this._cache[key];
if (bitmap.isError()) {
throw new Error('Failed to load: ' + bitmap.url);
}
if (!bitmap.isReady()) {
return false;
}
}
return true;
};
//是物体特征
ImageManager.isObjectCharacter = function(filename) {
var sign = filename.match(/^[\!\$]+/);
return sign && sign[0].contains('!');
};
//是大特征
ImageManager.isBigCharacter = function(filename) {
var sign = filename.match(/^[\!\$]+/);
return sign && sign[0].contains('$');
};
//是0视差
ImageManager.isZeroParallax = function(filename) {
return filename.charAt(0) === '!';
};
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-5-10 22:38
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.