All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m16s
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { _decorator, Component, Sprite } from 'cc';
|
|
import { I18nManager } from '../manager/I18nManager';
|
|
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('LocalizedSprite')
|
|
export class LocalizedSprite extends Component {
|
|
private sprite: Sprite | null = null;
|
|
|
|
@property({ tooltip: '资源名字' })
|
|
private spriteName: string = '';
|
|
|
|
onLoad() {
|
|
this.sprite = this.getComponent(Sprite);
|
|
this.updateSprite();
|
|
}
|
|
|
|
public updateSprite() {
|
|
if (!this.sprite || !this.spriteName) return;
|
|
if (!I18nManager.instance.ready) return;
|
|
let cacheKey = `${I18nManager.instance.currentLanguage}_${this.spriteName}`;
|
|
let cachedFrame = I18nManager.instance.spriteFrameCache.get(cacheKey);
|
|
|
|
if (cachedFrame) {
|
|
this.sprite.spriteFrame = cachedFrame;
|
|
}
|
|
}
|
|
|
|
updateSpriteForPreload(language: string) {
|
|
this.sprite = this.getComponent(Sprite);
|
|
let cacheKey = `${language}_${this.spriteName}`;
|
|
let cachedFrame = I18nManager.instance.spriteFrameCache.get(cacheKey);
|
|
this.sprite.spriteFrame = cachedFrame;
|
|
}
|
|
} |