11.5.0 • Published 10 months ago
lite-cc v11.5.0
规范
- 多语言键
枚举名-编号-场景
其中场景
是可选的 比如: ValueTypeData为道具表 道具名的多语言键为ValueTypeData-编号
道具描述的多语言键为ValueTypeData-编号-desc
- 编号
0
为通用 比如: 多个页面都会用到使用
那么这个多语言键就为ViewData-0-use
代码
CcAssetManager - 资源管理器
const assetManager = new CcAssetManager({
[路径]: 资源,
...
});
// 本地资源
const localAsset = await assetManager.load(资源类型, 'bundle:asset相对地址');
// 远程图片资源
const remoteAsset = await assetManager.load(SpriteFrame, 'https://xx.png');
CcClick - 点击
// 一直按住按钮超过该时间将不会触发点击事件
CcClick.maxInterval = 300;
// 按钮默认音效
CcClick.defaultSound = {
path: '音频路径',
scene: '场景',
};
// 音效断言
CcClick.soundPredicate = async (node: Node) => {
// 是否播放
return true;
};
const safeClick: CcClick;
// 点击按钮是否触发点击事件
safaClick.interactable = true or false;
safeClick.init({
clickAction: async () => {
// 点击事件
},
// 音效 无效则使用CcClick.defaultSound
sound: {
path: '音频路径',
scene: '场景',
},
});
CcAudioService - 音频服务
const assetManager: CcAssetManager;
const ccFactory: CcFactory;
const destoryAction: () => void;
const audioService = new CcAudioService(assetManager, ccFactory, 使用场景, destoryAction);;
// 获取音量
const volume = audioService.volumn;
// 设置音量(0.0-1.0)
audioService.volumn = 0.5;
// 销毁当前音频
audioService.destory();
// 暂停
audioService.pause();
// 循环播放
await audioService.play(路径或者AudioClip);
// 循环一次
await audioService.playOnce(路径或者AudioClip);
// 继续
audioService.resume();
// 停止
audioService.stop();
CcAudioFactory - 音频工厂
const assetManager: CcAssetManager;
const ccFactory: CcFactory;
const audioPlayerFactory = new AudioPlayerFactory(assetManager, ccFactory);
// 主场景音频播放器
const mainAudioPlayer = audioPlayerFactory.build('main');
// 战斗音频播放器
const battleAudioPlayer = audioPlayerFactory.build('battle');
CcCopyServiceBase - 复制服务
const service: CcCopyServiceBase;
await service.copy('内容');
CcFactory - cc工厂
const factory = new CcFactory();
// 创建构造函数
const nodeCtor = factory.buildCtor<Node>('Node');
// 创建函数
const instantiate = factory.buildFunc<Node>('instantiate');
// 创建对象
const layers = factory.buildObj<{
Enum: {
UI_2D: number;
};
}>('Layers');
// 是否有效
const node: Node;
const res = factory.isValid(node);
CcErrorSubject - 错误主题
const errSubject: CcErrorSubject = new CcErrorSubject();
const err: Error;
await errSubject.notify(err);
CcLang - 多语言组件
const node: cc.Node;
node.getComponent(CcLang).keys = ['多语言键1', ..., '多语言键n'];
CcLangAccessorBase - 多语言读取器
const langAccessor: CcLangAccessorBase;
// 获取当前语言缩写
const res = langAccessor.langAbbr;
// 当参数为多个时 多语言键1的文本包含{0}...{n}
const res = await langAccessor.get('多语言键1', ..., '多语言键n');
// 多语言数据内是否包含该键
const res = await langAccessor.has('多语言键');
CcNumberFormatter - 数字格式化器
- 该脚本需挂载在节点上且节点上需包含
Label
// 小数位数(默认: 2)
CcNumberFormatter.fractionDigits = 2;
CcNumberFormatter.unit = {
M: 1_000_000,
K: 1_000,
};
const node: cc.Node;
node.getComponent(CcNumberFormatter).setValue(1.23456);
// Label.string = '1.23';
node.getComponent(CcNumberFormatter).setValue(123_456_789);
// Label.string = '123.46M';
node.getComponent(CcNumberFormatter).setValue({
lang: {
numIndex: 数字在keys中的下标,
keys: ['多语言键1', ..., '多语言键n'],
}
} as CcNumberFormatterOption);
//例如:
// lang.numIndex = 1
// lang.keys = ['获得{0}金币', 123_456_789]
// CcLang.keys = ['获得{0}金币', '123.46M'];
// Label.string = '获得123.46M金币';
CcUnixFormatter - 时间戳格式化器
- 该脚本需挂载在节点上且节点上需包含
Label
// 时间戳默认格式化结构
CcUnixFormatter.format = 'HH:mm:ss';
// 是否utc 默认: true
CcUnixFormatter.isUTC = true;
this.unixFormatter.setValue(时间戳 or {
format: '自定义格式化',
unix: 时间戳,
});
node.getComponent(CcUnixFormatter).setValue({
lang: {
unixIndex: 数字在keys中的下标,
keys: ['多语言键1', ..., '多语言键n'],
}
} as CcUnixFormatterOption);
//例如:
// lang.unixIndex = 1
// lang.keys = ['剩余: {0}', 3665]
// CcLang.keys = ['剩余: {0}', '01:01:05'];
// Label.string = '剩余: 01:01:05';
ICcErrorObserver - 错误观察者
const observer: ICcErrorObserver;
const err: Error;
await observer.updateWithError(err);