From 8bc4d5d6576f0f9567162787a8c62c83d1c10654 Mon Sep 17 00:00:00 2001 From: liujiangnan <695541723@qq.com> Date: Fri, 23 Sep 2022 11:26:22 +0800 Subject: [PATCH] feat --- assets/NJ_MonkyTree/scene/NJ_MonkyTree.ts | 309 +++++++++--------- .../script/MyCocosSceneComponent.ts | 12 +- 2 files changed, 156 insertions(+), 165 deletions(-) diff --git a/assets/NJ_MonkyTree/scene/NJ_MonkyTree.ts b/assets/NJ_MonkyTree/scene/NJ_MonkyTree.ts index 90f2c36..791f4ed 100644 --- a/assets/NJ_MonkyTree/scene/NJ_MonkyTree.ts +++ b/assets/NJ_MonkyTree/scene/NJ_MonkyTree.ts @@ -57,7 +57,7 @@ export default class SceneComponent extends MyCocosSceneComponent { this.rootAttrTree = this.getComponent('Attributes'); this.initBg(); this.initUnitViewPager(); - await this.createFiniteStateMachines(); + this.createFiniteStateMachines(); const BackViewButtons = this.rootAttrTree.querySelectorAll('.back-view'); BackViewButtons.forEach(b => { buttonOnClick(b, ()=> { @@ -227,175 +227,176 @@ export default class SceneComponent extends MyCocosSceneComponent { cc.audioEngine.playMusic(audio, true); } createFiniteStateMachines() { - return new Promise((resolve) => { - let pid = 21228; // 本地测试用 - let pname = 'level 1'; // 本地测试用 - const middleLayer = cc.find('middleLayer'); - if(middleLayer) { - pid = middleLayer.getComponent('middleLayer').getData('NJ_MonkyTree'); - pname = middleLayer.getComponent('middleLayer').getData('NJ_MonkyTree_name'); - if (pname) { - pname = pname.toLowerCase().trim(); - } + + let pid = 21228; // 本地测试用 + let pname = 'level 1'; // 本地测试用 + const middleLayer = cc.find('middleLayer'); + if(middleLayer) { + pid = middleLayer.getComponent('middleLayer').getData('NJ_MonkyTree'); + pname = middleLayer.getComponent('middleLayer').getData('NJ_MonkyTree_name'); + if (pname) { + pname = pname.toLowerCase().trim(); } - // æ ¹æ®ä¸åŒçº§åˆ«æ¸²æŸ“图片 - this.drawLevelItemPic(pname); - - const operationState = { - id: 'operation', - initial: 'UnitView', - context: { - UnitViewData: null, - currentDataset: null, - }, - states: { - UnitView: { - entry: (ctx, event) => { - console.log('entry UnitView stage'); - this.UnitView.active = true; - - if (pname == 'level 1') { - this.playBgMusic(this.bgMusic2); - } else if (pname == 'level 2') { - this.playBgMusic(this.bgMusic3); - } else if (pname == 'level 3') { - this.playBgMusic(this.bgMusic4); + } + // æ ¹æ®ä¸åŒçº§åˆ«æ¸²æŸ“图片 + this.drawLevelItemPic(pname); + + const operationState = { + id: 'operation', + initial: 'UnitView', + context: { + UnitViewData: null, + currentDataset: null, + }, + states: { + UnitView: { + entry: (ctx, event) => { + console.log('entry UnitView stage'); + this.UnitView.active = true; + + if (pname == 'level 1') { + this.playBgMusic(this.bgMusic2); + } else if (pname == 'level 2') { + this.playBgMusic(this.bgMusic3); + } else if (pname == 'level 3') { + this.playBgMusic(this.bgMusic4); + } + + + const lessonsBtn = this.rootAttrTree.querySelectorAll('.lesson-button'); + lessonsBtn.forEach((b, idx) => { + const attr: Attributes = b.getComponent('Attributes'); + const lock = cc.find('icon_key', b); + lock.active = true; + const titleNode = attr.querySelector('.title'); + + const outline = '#000'; + const name = ""; + const richText = titleNode.getComponent(cc.RichText); + if ( !richText.fontSizeBase ) { + richText.fontSizeBase = richText.fontSize; } - - - const lessonsBtn = this.rootAttrTree.querySelectorAll('.lesson-button'); - lessonsBtn.forEach((b, idx) => { - const attr: Attributes = b.getComponent('Attributes'); - const lock = cc.find('icon_key', b); - lock.active = true; - const titleNode = attr.querySelector('.title'); - - const outline = '#000'; - const name = ""; - const richText = titleNode.getComponent(cc.RichText); - if ( !richText.fontSizeBase ) { - richText.fontSizeBase = richText.fontSize; - } - richText.fontSize = richText.fontSizeBase; - if (name.length > 14) { - richText.fontSize = richText.fontSizeBase * 0.7; - } - richText.font = cc.find("Canvas/res/font/BRLNSDB").getComponent(cc.Label).font; - - titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} - width=4>${name}</outline>` - - - // const pos = exchangeNodePos(b, titleNode); - // titleNode.x = pos.x; - // titleNode.y = pos.y; - // titleNode.parent = b; - - - // const textPng = this.getSprNode("Game"); - // titleNode.addChild(textPng); - // textPng.y = -titleNode.height; - // textPng.active = false; - // titleNode.textPng = textPng; - }); - - - callNetworkApiGet('/api/syllabus/v2/tree', { pid, deep: 1 }, (resp: any) => { - resp = JSON.parse(resp); - if (resp.msg == 'success') { - let { rows } = resp; - const list = rows.reduce((result, next) => { - const { children } = next; - // has_courseware true 是文件夹 - let childrenList = children.filter(r => r.has_courseware) - if (childrenList.length > 3) { - childrenList.length = 3 + richText.fontSize = richText.fontSizeBase; + if (name.length > 14) { + richText.fontSize = richText.fontSizeBase * 0.7; + } + richText.font = cc.find("Canvas/res/font/BRLNSDB").getComponent(cc.Label).font; + + titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} + width=4>${name}</outline>` + + + // const pos = exchangeNodePos(b, titleNode); + // titleNode.x = pos.x; + // titleNode.y = pos.y; + // titleNode.parent = b; + + + // const textPng = this.getSprNode("Game"); + // titleNode.addChild(textPng); + // textPng.y = -titleNode.height; + // textPng.active = false; + // titleNode.textPng = textPng; + }); + + + callNetworkApiGet('/api/syllabus/v2/tree', { pid, deep: 1 }, (resp: any) => { + resp = JSON.parse(resp); + if (resp.msg == 'success') { + let { rows } = resp; + const list = rows.reduce((result, next) => { + const { children } = next; + // has_courseware true 是文件夹 + let childrenList = children.filter(r => r.has_courseware) + if (childrenList.length > 3) { + childrenList.length = 3 + } + result = [...result, ...childrenList] + return result + }, []); + // rows = rows.filter(r => !r.has_courseware) + + lessonsBtn.forEach((b, idx) => { + const attr: Attributes = b.getComponent('Attributes'); + const index = attr.attrMap['index']; + + const lesson = list[index]; + const lock = cc.find('icon_key', b); + // console.log("===liu2===", index); + // if (index == 0) { + // lock.active = false; + // } else { + lock.active = true; + // } + const titleNode = attr.querySelector('.title'); + if (!lesson) { + return; + } + b.attr({ 'data_id': lesson.id }); + b.attr({ 'data_pid': lesson.pid }); + + + if (index == 0 || ( this.kidInfo && this.kidInfo.unlock_syllabuses?.includes(lesson.id+"") && (index-0) % 3 === 0)) { + lock.active = false; + const outline = this.drawTextBorder(pname, b.name); + + const name = lesson.name; + const richText = titleNode.getComponent(cc.RichText); + if ( !richText.fontSizeBase ) { + richText.fontSizeBase = richText.fontSize; } - result = [...result, ...childrenList] - return result - }, []); - // rows = rows.filter(r => !r.has_courseware) - - lessonsBtn.forEach((b, idx) => { - const attr: Attributes = b.getComponent('Attributes'); - const index = attr.attrMap['index']; - - const lesson = list[index]; - const lock = cc.find('icon_key', b); - // console.log("===liu2===", index); - // if (index == 0) { - // lock.active = false; - // } else { - lock.active = true; - // } - const titleNode = attr.querySelector('.title'); - if (!lesson) { - return; + richText.fontSize = richText.fontSizeBase; + if (name.length > 14) { + richText.fontSize = richText.fontSizeBase * 0.7; } - b.attr({ 'data_id': lesson.id }); - b.attr({ 'data_pid': lesson.pid }); - - - if (index == 0 || ( this.kidInfo && this.kidInfo.unlock_syllabuses?.includes(lesson.id+"") && (index-0) % 3 === 0)) { - lock.active = false; - const outline = this.drawTextBorder(pname, b.name); + richText.font = cc.find("Canvas/res/font/BRLNSDB").getComponent(cc.Label).font; - const name = lesson.name; - const richText = titleNode.getComponent(cc.RichText); - if ( !richText.fontSizeBase ) { - richText.fontSizeBase = richText.fontSize; - } - richText.fontSize = richText.fontSizeBase; - if (name.length > 14) { - richText.fontSize = richText.fontSizeBase * 0.7; - } - richText.font = cc.find("Canvas/res/font/BRLNSDB").getComponent(cc.Label).font; + titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} + width=4>${name}</outline>`; - titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} - width=4>${name}</outline>`; + const pos = exchangeNodePos(b, titleNode); + titleNode.x = pos.x; + titleNode.y = pos.y; + titleNode.parent = b; - const pos = exchangeNodePos(b, titleNode); - titleNode.x = pos.x; - titleNode.y = pos.y; - titleNode.parent = b; + // delayCall(1, () => { - // delayCall(1, () => { + // console.log('idx: ', idx); + // console.log("ä¼ å…¥æŒ‰é’®å2:", name); - // console.log('idx: ', idx); - // console.log("ä¼ å…¥æŒ‰é’®å2:", name); + // titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} + // width=4>${name}</outline>`; + // console.log("显示按钮å2:", titleNode.getComponent(cc.RichText).string); - // titleNode.getComponent(cc.RichText).string = `<outline align=top color=${outline} - // width=4>${name}</outline>`; - // console.log("显示按钮å2:", titleNode.getComponent(cc.RichText).string); + // }) + } - // }) - } + }); + ctx.UnitViewData = list; + ctx.currentDataset = list; + } - }); - ctx.UnitViewData = list; - ctx.currentDataset = list; - } - resolve(); - }); - - }, - exit: () => { - // console.log('exit UnitView stage'); - }, - invoke: { - src: (ctx, event) => { + if (window && window["air"]) { + window["air"].hideAirClassLoading(); } - }, - }, - } - }; + }); - const operationMachine = createMachine(operationState); + }, + exit: () => { + // console.log('exit UnitView stage'); + }, + invoke: { + src: (ctx, event) => { + } + }, + }, + } + }; - this.gameMachineService = interpret(operationMachine).onTransition((state) => { - console.log(1, state); - }); + const operationMachine = createMachine(operationState); + this.gameMachineService = interpret(operationMachine).onTransition((state) => { + console.log(1, state); }); } diff --git a/assets/NJ_MonkyTree/script/MyCocosSceneComponent.ts b/assets/NJ_MonkyTree/script/MyCocosSceneComponent.ts index 8a262ef..9f434d9 100644 --- a/assets/NJ_MonkyTree/script/MyCocosSceneComponent.ts +++ b/assets/NJ_MonkyTree/script/MyCocosSceneComponent.ts @@ -89,17 +89,7 @@ export class MyCocosSceneComponent extends cc.Component { const preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList); cc.assetManager.loadAny(preloadArr, null, null, async (err, data) => { - if (window && window["air"]) { - // window["air"].onCourseInScreen = (next) => { - // window["air"].isCourseInScreen = true; - // this.onLoadEnd(); - // next(); - // }; - await this.onLoadEnd(); - window["air"].hideAirClassLoading(); - } else { - this.onLoadEnd(); - } + this.onLoadEnd(); cc.debug.setDisplayStats(false); }); -- 2.21.0