# CCMImageLoader
experiment 实验性功能
# 概述:
CCMImageLoader 图片加载类,动态加载项目中或者远程图片。
- 可超时设置
- 三级缓存(内存缓存,文件缓存,网络缓存)
- 可加载本地资源和远程资源
- 可绑定component 生命周期。
方法: 图片下载
/**
* 请求下载网络图片/或者本地图片 返回纹理信息
* @param url
* @param options 选项 timeout 超时时间(秒),
* target 依赖的组件cc.Component,若组件已经被销毁,则会返回已销毁异常,需要catch
* autoRelease 资源是否随场景自动释放 默认true
*/
loadImg(url: string, options?: ImageLoaderOptions): Promise<Texture2D>;
# 使用样例
- 加载本地图片
this.imageLoader.loadImg('images/title').then(r => {
if (r) {
Log.d(TAG, 'set the texture');
this.imageSprite.spriteFrame = new SpriteFrame(r);
} else {
Log.d(TAG, 'the texture is null');
}
}).catch((errmsg) => {
Log.d(TAG, 'load error' + errmsg);
});
- 加载远程图片
import { ImageLoader } from '../cocomat-lib/ccm';
this.imageLoader = new ImageLoader();
this.imageLoader.loadImg('https://images.pexels.com/photos/282920/pexels-photo-282920.jpeg', {timeout: 10}).then(texture => {
if (texture) {
Log.d(TAG, 'set the texture');
this.imageSprite.spriteFrame = new SpriteFrame(texture);
} else {
Log.d(TAG, 'the texture is null');
}
}).catch((errmsg) => {
Log.d(TAG, 'load error' + errmsg);
});
- 使用缓存图片(若存在,不存在则下载远程图片,常用于小图,需要复用的场景)
this.imageLoader.loadImg('https://images.pexels.com/photos/1191710/pexels-photo-1191710.jpeg', {
timeout: 6,
target: this,
autoRelease: false
}).then(texture => {
if (texture) {
Log.d(TAG, 'set the texture');
this.imageSprite.spriteFrame = new SpriteFrame(texture);
} else {
Log.d(TAG, 'the texture is null');
}
}).catch((errmsg) => {
Log.d(TAG, 'load error:' + errmsg);
});