System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5", "__unresolved_6"], function (_export, _context) { "use strict"; var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, instantiate, Size, UITransform, Vec2, Vec3, Container_Manager, UI_Idiom, ui_base, ModuleDef, GameUILayers, Layout_Idioms, _dec, _class, _crd, ccclass, property, UI_Idioms; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _reportPossibleCrUseOfContainer_Manager(extras) { _reporterNs.report("Container_Manager", "db://assets/Scripts/Container_Manager", _context.meta, extras); } function _reportPossibleCrUseOfUI_Idiom(extras) { _reporterNs.report("UI_Idiom", "./UI_Idiom", _context.meta, extras); } function _reportPossibleCrUseOfCube_Infor(extras) { _reporterNs.report("Cube_Infor", "db://assets/Scripts/Cube_Infor", _context.meta, extras); } function _reportPossibleCrUseOfui_base(extras) { _reporterNs.report("ui_base", "db://assets/core/ui/ui_base", _context.meta, extras); } function _reportPossibleCrUseOfModuleDef(extras) { _reporterNs.report("ModuleDef", "db://assets/Scripts/ModuleDef", _context.meta, extras); } function _reportPossibleCrUseOfGameUILayers(extras) { _reporterNs.report("GameUILayers", "db://assets/core/ui/ui", _context.meta, extras); } function _reportPossibleCrUseOfLayout_Idioms(extras) { _reporterNs.report("Layout_Idioms", "./Layout_Idioms", _context.meta, extras); } return { setters: [function (_unresolved_) { _reporterNs = _unresolved_; }, function (_cc) { _cclegacy = _cc.cclegacy; __checkObsolete__ = _cc.__checkObsolete__; __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__; _decorator = _cc._decorator; instantiate = _cc.instantiate; Size = _cc.Size; UITransform = _cc.UITransform; Vec2 = _cc.Vec2; Vec3 = _cc.Vec3; }, function (_unresolved_2) { Container_Manager = _unresolved_2.Container_Manager; }, function (_unresolved_3) { UI_Idiom = _unresolved_3.UI_Idiom; }, function (_unresolved_4) { ui_base = _unresolved_4.default; }, function (_unresolved_5) { ModuleDef = _unresolved_5.ModuleDef; }, function (_unresolved_6) { GameUILayers = _unresolved_6.GameUILayers; }, function (_unresolved_7) { Layout_Idioms = _unresolved_7.Layout_Idioms; }], execute: function () { _crd = true; _cclegacy._RF.push({}, "efc87WIo/pPjbu6aYJ5woDB", "UI_Idioms", undefined); __checkObsolete__(['_decorator', 'Component', 'DynamicAtlasManager', 'instantiate', 'Label', 'macro', 'Node', 'Prefab', 'ScrollView', 'Size', 'UITransform', 'Vec2', 'Vec3']); ({ ccclass, property } = _decorator); _export("UI_Idioms", UI_Idioms = (_dec = ccclass('UI_Idioms'), _dec(_class = class UI_Idioms extends (_crd && ui_base === void 0 ? (_reportPossibleCrUseOfui_base({ error: Error() }), ui_base) : ui_base) { constructor() { super((_crd && ModuleDef === void 0 ? (_reportPossibleCrUseOfModuleDef({ error: Error() }), ModuleDef) : ModuleDef).GAME, 'ui/UI_Idioms/ScrollView', (_crd && GameUILayers === void 0 ? (_reportPossibleCrUseOfGameUILayers({ error: Error() }), GameUILayers) : GameUILayers).HUD, _crd && Layout_Idioms === void 0 ? (_reportPossibleCrUseOfLayout_Idioms({ error: Error() }), Layout_Idioms) : Layout_Idioms); this.count = 5; this.idioms = []; } onCreated() { var _this = this; return _asyncToGenerator(function* () { _this.init(); })(); } init() { var layout = this.getLayout(); console.log("init"); for (var i = 0; i < this.count; i++) { var node = instantiate(layout.idiom_prefab); node.parent = layout.content; console.log("label" + (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idioms[i].idiom); node.getComponent(_crd && UI_Idiom === void 0 ? (_reportPossibleCrUseOfUI_Idiom({ error: Error() }), UI_Idiom) : UI_Idiom).txt.string = (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idioms[i].idiom; node.getComponent(_crd && UI_Idiom === void 0 ? (_reportPossibleCrUseOfUI_Idiom({ error: Error() }), UI_Idiom) : UI_Idiom).piece_1_word = (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idioms[i].piece_1_word; node.getComponent(_crd && UI_Idiom === void 0 ? (_reportPossibleCrUseOfUI_Idiom({ error: Error() }), UI_Idiom) : UI_Idiom).piece_2_word = (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idioms[i].piece_2_word; this.idioms.push(node.getComponent(_crd && UI_Idiom === void 0 ? (_reportPossibleCrUseOfUI_Idiom({ error: Error() }), UI_Idiom) : UI_Idiom)); } } //高亮显示 light_Show(cube_infor) { var layout = this.getLayout(); var txt_length = cube_infor.Text.length; this.idioms.forEach(element => { if (element.piece_1_word === cube_infor.Text) { element.hud_sp.node.active = true; element.hud_sp.node.getComponent(UITransform).contentSize = new Size(20 * txt_length, 20); var target = 0; element.hud_sp.node.position = new Vec3(31 + target * 20, -16, 0); var pos = new Vec2(element.node.position.x, element.node.position.y); this.scrollToTarget(pos); } else if (element.piece_2_word === cube_infor.Text) { element.hud_sp.node.active = true; element.hud_sp.node.getComponent(UITransform).contentSize = new Size(20 * txt_length, 20); var _target = 4 - txt_length; element.hud_sp.node.position = new Vec3(31 + _target * 20, -16, 0); var _pos = new Vec2(element.node.position.x, element.node.position.y); this.scrollToTarget(_pos); } }); } //取消高亮 light_Hide(cube1, cube2) { var layout = this.getLayout(); this.idioms = this.idioms.filter(element => { var shouldRemove = false; var hasMatch = false; // 检查与 cube1 相关的成语 if (cube1.Text === element.piece_1_word) { for (var cubeInfor of (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idiom_combine.keys()) { if (cubeInfor.txt.string === cube1.Text) { hasMatch = true; break; } } // 只有当前字没有参与成语时才移除提示 if (!hasMatch) { element.hud_sp.node.active = false; // 销毁UI中的成语提示 } } // 检查与 cube2 相关的成语 if (cube2.Text === element.piece_2_word) { for (var _cubeInfor of (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idiom_combine.keys()) { if (_cubeInfor.txt.string === cube2.Text) { hasMatch = true; break; } } // 只有当前字没有参与成语时才移除提示 if (!hasMatch) { element.hud_sp.node.active = false; // 销毁UI中的成语提示 } } // 检查是否能组合成一个成语 if (cube1.Text + cube2.Text === element.txt.string) { element.node.destroy(); // 销毁节点 shouldRemove = true; // 如果已组合,移除该成语 } // 保留未被组合的元素 return !shouldRemove; }); // 监测所有字是否仍然需要高亮显示 this.idioms.forEach(element => { // 检查每个字是否仍然在任何成语组合中 var shouldDisplay = false; // 遍历容器中的所有成语组合,看看当前字是否仍然参与任何组合 for (var cubeInfor of (_crd && Container_Manager === void 0 ? (_reportPossibleCrUseOfContainer_Manager({ error: Error() }), Container_Manager) : Container_Manager).instance.idiom_combine.keys()) { if (cubeInfor.txt.string === element.piece_1_word || cubeInfor.txt.string === element.piece_2_word) { shouldDisplay = true; break; } } // 如果该字还参与成语,则保持其提示显示 if (shouldDisplay) { element.hud_sp.node.active = true; } }); } scrollToTarget(pos) { var layout = this.getLayout(); layout.scrollView.scrollTo(pos, 0.2, true); } all_light_Hide() { this.idioms.forEach(element => { element.hud_sp.node.active = false; }); } }) || _class)); _cclegacy._RF.pop(); _crd = false; } }; }); //# sourceMappingURL=8d8e10cc93cdaf5d8a87ce905d2e79308f6c8894.js.map