rp_11009/assets/Main/Scripts/i18n/LocalizedSprite.ts
2026-04-01 11:10:33 +08:00

35 lines
1.1 KiB
TypeScript

import { _decorator, Component, Sprite } from 'cc';
import { I18nManager } from '../managers/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;
}
}