diff --git a/assets/resources/gui/prefab/demo.prefab b/assets/resources/gui/prefab/demo.prefab index 5aaa802..d37fb59 100644 --- a/assets/resources/gui/prefab/demo.prefab +++ b/assets/resources/gui/prefab/demo.prefab @@ -2596,7 +2596,7 @@ "__prefab": { "__id__": 118 }, - "path": "image", + "_dataID": "image", "isRawSize": false, "_id": "" }, diff --git a/assets/scene/main.scene b/assets/scene/main.scene index 2fc43fc..e0dc578 100644 --- a/assets/scene/main.scene +++ b/assets/scene/main.scene @@ -227,7 +227,7 @@ "_priority": 1073741824, "_fov": 45, "_fovAxis": 0, - "_orthoHeight": 445.57919621749414, + "_orthoHeight": 371.44208037825064, "_near": 1, "_far": 2000, "_color": { diff --git a/assets/script/Main.ts b/assets/script/Main.ts index 712d6b8..ea6edfb 100644 --- a/assets/script/Main.ts +++ b/assets/script/Main.ts @@ -2,7 +2,7 @@ * @Author: dgflash * @Date: 2021-07-03 16:13:17 * @LastEditors: dgflash - * @LastEditTime: 2022-02-12 19:05:54 + * @LastEditTime: 2022-03-10 17:37:45 */ import { setDisplayStats, _decorator } from 'cc'; import { DEBUG } from 'cc/env'; diff --git a/assets/script/core/gui/language/LanguageLabel.ts b/assets/script/core/gui/language/LanguageLabel.ts index ec20a62..1e23fd0 100644 --- a/assets/script/core/gui/language/LanguageLabel.ts +++ b/assets/script/core/gui/language/LanguageLabel.ts @@ -62,7 +62,8 @@ export class LanguageLabel extends Component { return _string; } - set language(lang: string) { + /** 更新语言 */ + language() { this._needUpdate = true; } diff --git a/assets/script/core/gui/language/LanguagePack.ts b/assets/script/core/gui/language/LanguagePack.ts index 6006cec..7b70279 100644 --- a/assets/script/core/gui/language/LanguagePack.ts +++ b/assets/script/core/gui/language/LanguagePack.ts @@ -1,3 +1,9 @@ +/* + * @Author: dgflash + * @Date: 2021-07-03 16:13:17 + * @LastEditors: dgflash + * @LastEditTime: 2022-03-11 17:10:39 + */ import { director, error, JsonAsset, warn } from "cc"; import { resLoader } from "../../common/loader/ResLoader"; import { Logger } from "../../common/log/Logger"; @@ -29,7 +35,7 @@ export class LanguagePack { * @param lang */ public updateLanguage(lang: string) { - let lanjson = resLoader.get(`${this._langjsonPath}/${lang}`, JsonAsset); + let lanjson: any = resLoader.get(`${this._langjsonPath}/${lang}`, JsonAsset); if (lanjson && lanjson.json) { LanguageData.data = lanjson.json; let rootNodes = director.getScene()!.children; @@ -37,12 +43,12 @@ export class LanguagePack { // 更新所有的LanguageLabel节点 let languagelabels = rootNodes[i].getComponentsInChildren(LanguageLabel); for (let j = 0; j < languagelabels.length; j++) { - languagelabels[j].language = lang; + languagelabels[j].language(); } // 更新所有的LanguageSprite节点 let languagesprites = rootNodes[i].getComponentsInChildren(LanguageSprite); for (let j = 0; j < languagesprites.length; j++) { - languagesprites[j].language = lang; + languagesprites[j].language(); } } } diff --git a/assets/script/core/gui/language/LanguageSprite.ts b/assets/script/core/gui/language/LanguageSprite.ts index a6f52f2..8f65112 100644 --- a/assets/script/core/gui/language/LanguageSprite.ts +++ b/assets/script/core/gui/language/LanguageSprite.ts @@ -1,4 +1,11 @@ -import { Component, Size, Sprite, SpriteFrame, UITransform, _decorator } from "cc"; +/* + * @Author: dgflash + * @Date: 2021-11-24 15:51:01 + * @LastEditors: dgflash + * @LastEditTime: 2022-03-11 17:13:46 + */ +import { CCString, Component, Size, Sprite, SpriteFrame, UITransform, _decorator } from "cc"; +import { EDITOR } from "cc/env"; import { resLoader } from "../../common/loader/ResLoader"; import { Logger } from "../../common/log/Logger"; import { LanguageData } from "./LanguageData"; @@ -8,10 +15,18 @@ const { ccclass, property, menu } = _decorator; @ccclass("LanguageSprite") @menu('ui/language/LanguageSprite') export class LanguageSprite extends Component { - @property({ - tooltip: "资源路径(language/texture/内的相对路径)" - }) - public path: string = ""; + @property({ serializable: true }) + private _dataID: string = ""; + @property({ type: CCString, serializable: true }) + get dataID(): string { + return this._dataID || ""; + } + set dataID(value: string) { + this._dataID = value; + if (!EDITOR) { + this.updateSprite(); + } + } @property({ tooltip: "是否设置为图片原始资源大小" @@ -19,28 +34,31 @@ export class LanguageSprite extends Component { private isRawSize: boolean = true; start() { - this.language = LanguageData.current; + this.updateSprite(); } - set language(lang: string) { - this.updateSprite(lang); + /** 更新语言 */ + language() { + this.updateSprite(); } - updateSprite(lang: string) { - let spcomp: Sprite = this.getComponent(Sprite)!; + private updateSprite() { // 获取语言标记 - let path = `language/texture/${lang}/${this.path}/spriteFrame`; - let res = resLoader.get(path, SpriteFrame); + let path = `language/texture/${LanguageData.current}/${this.dataID}/spriteFrame`; + let res: SpriteFrame | null = resLoader.get(path, SpriteFrame); if (!res) { Logger.erroring("[LanguageSprite] 资源不存在 " + path); } - spcomp.spriteFrame = res; + else { + let spcomp: Sprite = this.getComponent(Sprite)!; + spcomp.spriteFrame = res; - /** 修改节点为原始图片资源大小 */ - if (this.isRawSize) { - //@ts-ignore - let rawSize = res._originalSize as Size; - spcomp.getComponent(UITransform)?.setContentSize(rawSize); + /** 修改节点为原始图片资源大小 */ + if (this.isRawSize) { + //@ts-ignore + let rawSize = res._originalSize as Size; + spcomp.getComponent(UITransform)?.setContentSize(rawSize); + } } } } \ No newline at end of file