import { _decorator, Component, Label, Node, Sprite, UITransform } from "cc"; import { GButton } from "db://assets/Scripts/Main/Common/GButton"; import ResManager from "db://assets/Scripts/Main/Manager/ResManager"; import Utils from "db://assets/Scripts/Main/Common/Utils"; import { NavigationManager } from "../manager/NavigationManager"; import LanguageUtils from "../../Main/Common/LanguageUtils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; import { DataManager, DataId } from "../data/DataManager"; import { ThemeData } from "../data/ThemeData"; import { ViewManager } from "../../Main/Manager/ViewManager"; const { ccclass, property } = _decorator; @ccclass("ThemeItem") export class ThemeItem extends Component { @property(Sprite) lockImg: Sprite; @property(Sprite) lockCover: Sprite; @property(Label) titleName: Label; @property(Node) loading: Node; @property(Sprite) img: Sprite; private category: number; private isLocked: boolean; key: string; protected onLoad(): void { Utils.addInnerEL(InnerMsgCode.LanguageChange, this, () => { this.titleName.string = LanguageUtils.getText(this.key); }); } protected onDestroy(): void { Utils.removeInnerEL(InnerMsgCode.LanguageChange, this, () => { this.titleName.string = LanguageUtils.getText(this.key); }); } refresh(themeId: number) { this.loading.active = true; // 主题数据 const themeData = DataManager.I.getDataById(DataId.Theme); this.lockImg.node.active = this.lockCover.node.active = !themeData.getIsReleaseById(themeId); this.isLocked = !themeData.getIsReleaseById(themeId); this.key = themeData.getLanKeyById(themeId); this.titleName.string = LanguageUtils.getText( themeData.getLanKeyById(themeId) ); this.category = themeData.getCategoryById(themeId); ResManager.I.changeBundleSpriteFrame( this.img, themeData.getPathById(themeId), "Chat18x", () => { let sizeTran = this.img.node.parent.getComponent(UITransform); Utils.adjustBgPixelRatioToSize(sizeTran.contentSize, this.img.node, 3); this.loading.active = false; } ); GButton.RemoveAndBandClick(this.node, this.OnClickThis, this); } OnClickThis() { if (this.isLocked) { return; } NavigationManager.Instance.navigateToGirlList(this.category); } }