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 { TbThemes, Theme } from "../../schema/schema"; import LanguageUtils from "../../Main/Common/LanguageUtils"; import { InnerMsgCode } from "../../Main/Config/InnerMsgCode"; const { ccclass, property } = _decorator; @ccclass("ThemeItem") export class ThemeItem extends Component { @property(Sprite) lockImg: Sprite; @property(Sprite) lockCover: Sprite; @property(Label) titleName: Label; @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(themeData: Theme) { this.lockImg.node.active = this.lockCover.node.active = !themeData.isRelease; this.isLocked = !themeData.isRelease; this.key = themeData.key; this.titleName.string = LanguageUtils.getText(themeData.key); this.category = themeData.category; ResManager.I.changeBundleSpriteFrame( this.img, themeData.path, "Chat18x", () => { let sizeTran = this.img.node.parent.getComponent(UITransform); Utils.adjustBgPixelRatioToSize(sizeTran.contentSize, this.img.node, 2); } ); GButton.RemoveAndBandClick(this.node, this.OnClickThis, this); } OnClickThis() { if (this.isLocked) { return; } NavigationManager.Instance.navigateToGirlList(this.category); } }