Commit 0c3f1ae8 authored by 范雪寒's avatar 范雪寒

feat:

parent af9dfdb5
...@@ -47,15 +47,10 @@ cc.Class({ ...@@ -47,15 +47,10 @@ cc.Class({
if (err) { if (err) {
return this.asyncDelayLog(err); return this.asyncDelayLog(err);
} }
bundle.loadScene(configData.sceneName, null, null, (err, scene) => {
if (err) { const canvas = cc.find('Canvas');
this.asyncDelayLog('err: ', err); canvas.emit('MIDDLE_LAYER_LOADED', { scene: null });
} globalThis.configData = configData;
const canvas = cc.find('Canvas');
canvas.emit('MIDDLE_LAYER_LOADED', { scene });
globalThis.SCENE_INFO = scene
// cc.director.runScene(scene);
});
}); });
}); });
}, },
......
import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent"; import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent";
// @ts-ignore // @ts-ignore
import { assign, createMachine, interpret, actions, forwardTo, matchesState } from "../script/xstate"; import { assign, createMachine, interpret, actions, forwardTo, matchesState } from "../script/xstate";
const { pure , send, raise, sendParent } = actions; const { pure, send, raise, sendParent } = actions;
const { ccclass, property } = cc._decorator; const { ccclass, property } = cc._decorator;
...@@ -51,34 +51,34 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -51,34 +51,34 @@ export default class SceneComponent extends MyCocosSceneComponent {
@property([cc.Node]) @property([cc.Node])
FullPageNode: cc.Node[] = []; FullPageNode: cc.Node[] = [];
tw: cc.Tween = null; tw: cc.Tween = null;
gameMachineService: any = null; gameMachineService: any = null;
LoadingCount: number = 0; LoadingCount: number = 0;
start(){ start() {
this.LoadingCount = 0; this.LoadingCount = 0;
this.showWaitingLetters(); this.showWaitingLetters();
this.initBg(); this.initBg();
this.initSubmarineView(); this.initSubmarineView();
this.createFiniteStateMachines(); this.createFiniteStateMachines();
this.BackViewButtons.forEach(b => { this.BackViewButtons.forEach(b => {
b.on(cc.Node.EventType.TOUCH_START, function(){ b.on(cc.Node.EventType.TOUCH_START, function () {
this.gameMachineService.send('BACK'); this.gameMachineService.send('BACK');
// this.node.emit('BACK'); // this.node.emit('BACK');
}, this, true); }, this, true);
}); });
for (let bs of [this.SpaceViewButtons, this.SubmarineViewButtons, this.LetterViewButtons, this.StoryViewButtons, this.ReviewViewButtons]) { for (let bs of [this.SpaceViewButtons, this.SubmarineViewButtons, this.LetterViewButtons, this.StoryViewButtons, this.ReviewViewButtons]) {
bs.forEach(b => { bs.forEach(b => {
// const env = this; // const env = this;
b.on(cc.Node.EventType.TOUCH_START, function(){ b.on(cc.Node.EventType.TOUCH_START, function () {
// this.gameMachineService.send('BACK') // this.gameMachineService.send('BACK')
// env.node.emit('BACK'); // env.node.emit('BACK');
const [buttonName, state, index] = b.name.split('@'); const [buttonName, state, index] = b.name.split('@');
console.log(buttonName, state, index); console.log(buttonName, state, index);
let stateName = b.parent.name; let stateName = b.parent.name;
if (stateName.includes('@')) { if (stateName.includes('@')) {
...@@ -86,33 +86,33 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -86,33 +86,33 @@ export default class SceneComponent extends MyCocosSceneComponent {
stateName = sn; stateName = sn;
} }
console.log(stateName); console.log(stateName);
const currentDataset = this.gameMachineService.machine.config.context[stateName + 'Data']; const currentDataset = this.gameMachineService.machine.config.context[stateName + 'Data'];
if (!currentDataset || !currentDataset[index]) { if (!currentDataset || !currentDataset[index]) {
return; return;
} }
const linkFlag = stateName === 'LetterView'; const linkFlag = stateName === 'LetterView';
globalThis.PREV_STATE = globalThis.CURRENT_STATE ? JSON.parse(JSON.stringify(globalThis.CURRENT_STATE)) : null; globalThis.PREV_STATE = globalThis.CURRENT_STATE ? JSON.parse(JSON.stringify(globalThis.CURRENT_STATE)) : null;
const param = JSON.parse(JSON.stringify(currentDataset[index])); const param = JSON.parse(JSON.stringify(currentDataset[index]));
globalThis.CURRENT_STATE = { globalThis.CURRENT_STATE = {
state, state,
data: {...param, buttonName, linkFlag } data: { ...param, buttonName, linkFlag }
} }
console.log(globalThis.PREV_STATE ,globalThis.CURRENT_STATE ); console.log(globalThis.PREV_STATE, globalThis.CURRENT_STATE);
globalThis.CURRENT_PID = param.pid; globalThis.CURRENT_PID = param.pid;
globalThis.CURRENT_ID = param.id; globalThis.CURRENT_ID = param.id;
this.gameMachineService.send(state, {...param, buttonName, linkFlag }); this.gameMachineService.send(state, { ...param, buttonName, linkFlag });
}, this, true); }, this, true);
}); });
} }
globalThis.aaa =this; globalThis.aaa = this;
} }
initBg() { initBg() {
// const bgNode = cc.find('Canvas/MainScene/SpaceView/bg'); // const bgNode = cc.find('Canvas/MainScene/SpaceView/bg');
this.FullPageNode.forEach(n => { this.FullPageNode.forEach(n => {
n.scale = this._mapScaleMax; n.scale = this._mapScaleMax;
}); });
} }
...@@ -131,22 +131,22 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -131,22 +131,22 @@ export default class SceneComponent extends MyCocosSceneComponent {
} }
initSubmarineView(){ initSubmarineView() {
this.submarineView.node.on('scrolling', this.moveSubmarineBackground, this); this.submarineView.node.on('scrolling', this.moveSubmarineBackground, this);
} }
moveSubmarineBackground(){ moveSubmarineBackground() {
//获取滚动视图相对于左上角原点的当前滚动偏移 //获取滚动视图相对于左上角原点的当前滚动偏移
let scrollOffset: cc.Vec2 = this.submarineView.getScrollOffset(); let scrollOffset: cc.Vec2 = this.submarineView.getScrollOffset();
// console.log(scrollOffset.x); // console.log(scrollOffset.x);
this.submarineViewBackground.x = scrollOffset.x * 0.65; this.submarineViewBackground.x = scrollOffset.x * 0.65;
} }
createFiniteStateMachines() { createFiniteStateMachines() {
const canvas = cc.find('Canvas'); const canvas = cc.find('Canvas');
canvas.on('MIDDLE_LAYER_LOADED', ({scene}) => { canvas.on('MIDDLE_LAYER_LOADED', ({ scene }) => {
this.hideWaitingLetters(); this.hideWaitingLetters();
}); });
const operationState = { const operationState = {
...@@ -161,7 +161,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -161,7 +161,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
currentDataset: null, currentDataset: null,
}, },
states: { states: {
SpaceView: { SpaceView: {
entry: (ctx, event) => { entry: (ctx, event) => {
this.LetterView.active = false; this.LetterView.active = false;
...@@ -172,69 +172,69 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -172,69 +172,69 @@ export default class SceneComponent extends MyCocosSceneComponent {
cc.audioEngine.playMusic(this.bgMusic1, true); cc.audioEngine.playMusic(this.bgMusic1, true);
// event.type !== 'BACK' // event.type !== 'BACK'
this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507', (resp: any)=> { this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507', (resp: any) => {
resp = JSON.parse(resp); resp = JSON.parse(resp);
if (resp.msg == 'success') { if (resp.msg == 'success') {
let { rows } = resp let { rows } = resp
rows = rows.filter(r => !r.has_courseware); rows = rows.filter(r => !r.has_courseware);
console.log('SpaceView', rows ) console.log('SpaceView', rows)
ctx.SpaceViewData = rows; ctx.SpaceViewData = rows;
ctx.currentDataset = rows; ctx.currentDataset = rows;
} }
}); });
}, },
exit: () => { exit: () => {
console.log('exit SpaceView stage'); console.log('exit SpaceView stage');
cc.audioEngine.stopMusic(); cc.audioEngine.stopMusic();
cc.audioEngine.playMusic(this.bgMusic2, true); cc.audioEngine.playMusic(this.bgMusic2, true);
}, },
on: { on: {
SUBMARINE: 'SubmarineView', SUBMARINE: 'SubmarineView',
LETTER: 'LetterView', LETTER: 'LetterView',
STORY: 'StoryView', STORY: 'StoryView',
REVIEW: 'ReviewView', REVIEW: 'ReviewView',
}, },
}, },
SubmarineView: { SubmarineView: {
entry: (ctx, event) => { entry: (ctx, event) => {
console.log('entry SubmarineView stage'); console.log('entry SubmarineView stage');
this.LetterView.active = false; this.LetterView.active = false;
this.StoryView.active = false; this.StoryView.active = false;
this.ReviewView.active = false; this.ReviewView.active = false;
this.SubmarineView.active = true; this.SubmarineView.active = true;
}, },
exit: () => { exit: () => {
// console.log('exit SubmarineView stage'); // console.log('exit SubmarineView stage');
}, },
invoke:{ invoke: {
src: (ctx, event) =>{ src: (ctx, event) => {
console.log(111,event) console.log(111, event)
// this.submarineView.scrollToPage(0, 0) // this.submarineView.scrollToPage(0, 0)
this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid='+globalThis.CURRENT_ID, (resp: any)=> { this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid=' + globalThis.CURRENT_ID, (resp: any) => {
resp = JSON.parse(resp); resp = JSON.parse(resp);
if (resp.msg == 'success') { if (resp.msg == 'success') {
let { rows } = resp; let { rows } = resp;
rows = rows.filter(r => !r.has_courseware) rows = rows.filter(r => !r.has_courseware)
console.log('SubmarineView', rows); console.log('SubmarineView', rows);
ctx.SubmarineViewData = rows; ctx.SubmarineViewData = rows;
ctx.currentDataset = rows; ctx.currentDataset = rows;
} }
}); });
} }
}, },
on: { on: {
LOAD: { LOAD: {
target:'SubmarineView', target: 'SubmarineView',
actions: (ctx, event) => { actions: (ctx, event) => {
console.log('SubmarineView LOAD', ctx, event); console.log('SubmarineView LOAD', ctx, event);
} }
...@@ -243,7 +243,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -243,7 +243,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
STORY: 'StoryView', STORY: 'StoryView',
REVIEW: 'ReviewView', REVIEW: 'ReviewView',
BACK: { BACK: {
target:'SpaceView', target: 'SpaceView',
actions: (ctx, event) => { actions: (ctx, event) => {
console.log('back', ctx, event); console.log('back', ctx, event);
} }
...@@ -251,75 +251,75 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -251,75 +251,75 @@ export default class SceneComponent extends MyCocosSceneComponent {
}, },
}, },
LetterView: { LetterView: {
on: { on: {
BACK: { BACK: {
target:'SubmarineView', target: 'SubmarineView',
actions: () => { actions: () => {
globalThis.CURRENT_ID = globalThis.CURRENT_PID; globalThis.CURRENT_ID = globalThis.CURRENT_PID;
} }
}, },
PLAY: { PLAY: {
target:'PlayView', target: 'PlayView',
actions: (ctx, event) => { actions: (ctx, event) => {
console.log('PLAY', ctx, event); console.log('PLAY', ctx, event);
} }
} }
}, },
invoke:{ invoke: {
src: (ctx, event) =>{ src: (ctx, event) => {
// console.log(222,event) // console.log(222,event)
// if (event.id) { // if (event.id) {
// globalThis.CURRENT_PID = globalThis.CURRENT_ID; // globalThis.CURRENT_PID = globalThis.CURRENT_ID;
// globalThis.CURRENT_ID = event.id; // globalThis.CURRENT_ID = event.id;
// } // }
this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid='+globalThis.CURRENT_ID, (resp: any)=> { this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid=' + globalThis.CURRENT_ID, (resp: any) => {
resp = JSON.parse(resp); resp = JSON.parse(resp);
if (resp.msg == 'success') { if (resp.msg == 'success') {
let { rows } = resp; let { rows } = resp;
rows = rows.filter(r => r.has_courseware); rows = rows.filter(r => r.has_courseware);
console.log('LetterView', rows); console.log('LetterView', rows);
ctx.LetterViewData = rows; ctx.LetterViewData = rows;
ctx.currentDataset = rows; ctx.currentDataset = rows;
} }
}); });
} }
}, },
entry: (ctx, event) => { entry: (ctx, event) => {
console.log('entry LetterView stage', ); console.log('entry LetterView stage',);
this.LetterView.active = true; this.LetterView.active = true;
this.StoryView.active = false; this.StoryView.active = false;
this.ReviewView.active = false; this.ReviewView.active = false;
this.SubmarineView.active = true; this.SubmarineView.active = true;
this.LetterViewLabel.string = event.buttonName; this.LetterViewLabel.string = event.buttonName;
}, },
exit: () => { exit: () => {
console.log('exit LetterView stage'); console.log('exit LetterView stage');
} }
}, },
StoryView: { StoryView: {
on: { on: {
BACK: { BACK: {
target:'SubmarineView', target: 'SubmarineView',
actions: (ctx) => { actions: (ctx) => {
globalThis.CURRENT_ID = globalThis.CURRENT_PID; globalThis.CURRENT_ID = globalThis.CURRENT_PID;
} }
}, },
PLAY: { PLAY: {
target:'PlayView', target: 'PlayView',
actions: (ctx, event) => { actions: (ctx, event) => {
console.log('back', ctx, event); console.log('back', ctx, event);
} }
}, },
}, },
invoke:{ invoke: {
src: (ctx, event) =>{ src: (ctx, event) => {
return new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid='+globalThis.CURRENT_ID, (resp: any)=> { this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid=' + globalThis.CURRENT_ID, (resp: any) => {
resp = JSON.parse(resp); resp = JSON.parse(resp);
if (resp.msg == 'success') { if (resp.msg == 'success') {
let { rows } = resp; let { rows } = resp;
...@@ -327,7 +327,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -327,7 +327,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
console.log('StoryView', rows); console.log('StoryView', rows);
ctx.StoryViewData = rows; ctx.StoryViewData = rows;
ctx.currentDataset = rows; ctx.currentDataset = rows;
rows.forEach((r, idx )=> { rows.forEach((r, idx) => {
const btn = this.StoryViewButtons[idx]; const btn = this.StoryViewButtons[idx];
btn.active = true; btn.active = true;
const cover = btn.getComponent('Cover') const cover = btn.getComponent('Cover')
...@@ -338,118 +338,119 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -338,118 +338,119 @@ export default class SceneComponent extends MyCocosSceneComponent {
} }
}); });
}); });
} }
}, },
entry: (ctx, event) => { entry: (ctx, event) => {
// console.log('entry StoryView stage'); // console.log('entry StoryView stage');
this.LetterView.active = false; this.LetterView.active = false;
this.StoryView.active = true; this.StoryView.active = true;
this.ReviewView.active = false; this.ReviewView.active = false;
this.SubmarineView.active = true; this.SubmarineView.active = true;
this.ReviewViewButtons this.ReviewViewButtons
}, },
exit: () => { exit: () => {
// console.log('exit StoryView stage'); // console.log('exit StoryView stage');
}, },
}, },
ReviewView: { ReviewView: {
on: { on: {
BACK: { BACK: {
target:'SubmarineView', target: 'SubmarineView',
actions: (ctx) => { actions: (ctx) => {
globalThis.CURRENT_ID = globalThis.CURRENT_PID; globalThis.CURRENT_ID = globalThis.CURRENT_PID;
} }
}, },
PLAY: { PLAY: {
target:'PlayView', target: 'PlayView',
actions: (ctx, event) => { actions: (ctx, event) => {
// console.log('back', ctx, event); // console.log('back', ctx, event);
} }
}, },
}, },
invoke:{ invoke: {
src: (ctx, event) =>{ src: (ctx, event) => {
this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid='+globalThis.CURRENT_ID, (resp: any)=> { this.callNetworkApiGet('http://staging-teach.ireadabc.com/api/syllabus/v1/list?orgid=507&pid=' + globalThis.CURRENT_ID, (resp: any) => {
resp = JSON.parse(resp); resp = JSON.parse(resp);
if (resp.msg == 'success') { if (resp.msg == 'success') {
let { rows } = resp; let { rows } = resp;
rows = rows.filter(r => r.has_courseware); rows = rows.filter(r => r.has_courseware);
console.log('ReviewView', rows); console.log('ReviewView', rows);
ctx.ReviewViewData = rows; ctx.ReviewViewData = rows;
ctx.currentDataset = rows; ctx.currentDataset = rows;
rows.forEach((r, idx )=> { rows.forEach((r, idx) => {
const btn = this.ReviewViewButtons[idx]; const btn = this.ReviewViewButtons[idx];
btn.active = true; btn.active = true;
const cover = btn.getComponent('Cover') const cover = btn.getComponent('Cover')
cover.setUrl(r.cover); cover.setUrl(r.cover);
}); });
} }
}); });
} }
}, },
entry: (ctx, event) => { entry: (ctx, event) => {
// console.log('entry ReviewView stage'); // console.log('entry ReviewView stage');
this.LetterView.active = false; this.LetterView.active = false;
this.StoryView.active = false; this.StoryView.active = false;
this.ReviewView.active = true; this.ReviewView.active = true;
this.SubmarineView.active = true; this.SubmarineView.active = true;
}, },
exit: () => { exit: () => {
// console.log('exit ReviewView stage'); // console.log('exit ReviewView stage');
}, },
}, },
PlayView: { PlayView: {
on: { on: {
}, },
invoke:{ invoke: {
src: (ctx, event) =>{ src: (ctx, event) => {
this.showWaitingLetters(); this.showWaitingLetters();
} }
}, },
entry: (ctx, event) => { entry: (ctx, event) => {
console.log('entry PlayView stage'); console.log('entry PlayView stage');
this.showWaitingLetters(); this.showWaitingLetters();
cc.audioEngine.stopMusic(); cc.audioEngine.stopMusic();
const scene = globalThis.SCENE_INFO; const configData = globalThis.configData;
if (!scene) { cc.assetManager.loadBundle(configData.bondleUrl, { version: configData.version }, async (err, bundle) => {
this.showWaitingLetters(); if (err) {
return; return console.log(err);
}
// cc.director._scene = scene;
// cc.director._scene._activate();
// cc.game.resume();
cc.director.runScene(scene, null, ()=>{
try{
const middleLayer = cc.find('middleLayer').getComponent('middleLayer');
console.log(event.id, event.linkFlag);
middleLayer.loadOnlineCourseWare(event.id, event.linkFlag);
} catch(e) {
console.error(e);
} }
bundle.loadScene(configData.sceneName, null, null, (err, scene) => {
cc.director.runScene(scene, null, () => {
try {
console.log('汪汪汪')
const middleLayer = cc.find('middleLayer').getComponent('middleLayer');
console.log(event.id, event.linkFlag);
middleLayer.loadOnlineCourseWare(event.id, event.linkFlag);
} catch (e) {
console.error(e);
}
});
});
}); });
// this.LetterView.active = false; // this.LetterView.active = false;
// this.StoryView.active = false; // this.StoryView.active = false;
// this.ReviewView.active = true; // this.ReviewView.active = true;
// this.SubmarineView.active = false; // this.SubmarineView.active = false;
}, },
exit: () => { exit: () => {
this.hideWaitingLetters(); this.hideWaitingLetters();
console.log('exit PlayView stage'); console.log('exit PlayView stage');
}, },
}, },
} }
}; };
const operationMachine = createMachine(operationState); const operationMachine = createMachine(operationState);
this.gameMachineService = interpret(operationMachine).onTransition((state) => { this.gameMachineService = interpret(operationMachine).onTransition((state) => {
...@@ -458,17 +459,17 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -458,17 +459,17 @@ export default class SceneComponent extends MyCocosSceneComponent {
this.gameMachineService.start(); this.gameMachineService.start();
this.restore(); this.restore();
} }
restore(){ restore() {
if (globalThis.PREV_STATE) { if (globalThis.PREV_STATE) {
globalThis.CURRENT_ID = globalThis.PREV_STATE.data.id globalThis.CURRENT_ID = globalThis.PREV_STATE.data.id
globalThis.CURRENT_PID = globalThis.PREV_STATE.data.pid globalThis.CURRENT_PID = globalThis.PREV_STATE.data.pid
this.gameMachineService.send('SpaceView', {...globalThis.PREV_STATE.data, type:globalThis.PREV_STATE.state}); this.gameMachineService.send('SpaceView', { ...globalThis.PREV_STATE.data, type: globalThis.PREV_STATE.state });
globalThis.CURRENT_STATE = JSON.parse(JSON.stringify(globalThis.PREV_STATE)); globalThis.CURRENT_STATE = JSON.parse(JSON.stringify(globalThis.PREV_STATE));
globalThis.PREV_STATE = null; globalThis.PREV_STATE = null;
} }
} }
setStateContextData({rows, buttonsKey}) { setStateContextData({ rows, buttonsKey }) {
const buttons = buttonsKey; const buttons = buttonsKey;
buttons.forEach((b: any) => { buttons.forEach((b: any) => {
b.getComponent(cc.Button).interactable = false; b.getComponent(cc.Button).interactable = false;
}); });
...@@ -476,30 +477,30 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -476,30 +477,30 @@ export default class SceneComponent extends MyCocosSceneComponent {
if (!buttons[idx]) { if (!buttons[idx]) {
return; return;
} }
(buttons[idx] as any ).getComponent(cc.Button).interactable = true; (buttons[idx] as any).getComponent(cc.Button).interactable = true;
(buttons[idx] as any ).getComponent(cc.Button).dataIndex = idx; (buttons[idx] as any).getComponent(cc.Button).dataIndex = idx;
(buttons[idx] as any ).getComponent(cc.Button).dataMeta = item; (buttons[idx] as any).getComponent(cc.Button).dataMeta = item;
const [_, action, index] = (buttons[idx] as any ).name.split('@'); const [_, action, index] = (buttons[idx] as any).name.split('@');
(buttons[idx] as any ).off(cc.Node.EventType.TOUCH_START); (buttons[idx] as any).off(cc.Node.EventType.TOUCH_START);
(buttons[idx] as any ).on(cc.Node.EventType.TOUCH_START, function(){ (buttons[idx] as any).on(cc.Node.EventType.TOUCH_START, function () {
this.gameMachineService.send(action, item) this.gameMachineService.send(action, item)
}, this, true) }, this, true)
}); });
} }
callNetworkApiGet( uri, successCallBack: (resp: string) => void, errorCallback?: (any) => void) { callNetworkApiGet(uri, successCallBack: (resp: string) => void, errorCallback?: (any) => void) {
this.showWaitingLetters() this.showWaitingLetters()
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => { xhr.onreadystatechange = () => {
if (xhr.readyState == 4 ) { if (xhr.readyState == 4) {
this.hideWaitingLetters() this.hideWaitingLetters()
if ( (xhr.status >= 200 && xhr.status < 400)) { if ((xhr.status >= 200 && xhr.status < 400)) {
successCallBack && successCallBack(xhr.responseText); successCallBack && successCallBack(xhr.responseText);
} else { } else {
errorCallback && errorCallback(xhr) errorCallback && errorCallback(xhr)
} }
} }
}; };
console.log('url = ' + uri); console.log('url = ' + uri);
xhr.open('GET', uri, true); xhr.open('GET', uri, true);
...@@ -523,37 +524,37 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -523,37 +524,37 @@ export default class SceneComponent extends MyCocosSceneComponent {
const colorList = this.getRainbowColorList(); const colorList = this.getRainbowColorList();
const text = this.loading.getChildByName('text') const text = this.loading.getChildByName('text')
text.children.forEach((node, idx) => { text.children.forEach((node, idx) => {
node.color = colorList[idx]; node.color = colorList[idx];
this.tw = cc.tween(node) this.tw = cc.tween(node)
.delay(idx / 4) .delay(idx / 4)
.by(0.3, { y: 50 }, { easing: 'sineOut' }) .by(0.3, { y: 50 }, { easing: 'sineOut' })
.by(0.3, { y: -50 }, { easing: 'sineIn' }) .by(0.3, { y: -50 }, { easing: 'sineIn' })
.delay((text.children.length - idx) / 4) .delay((text.children.length - idx) / 4)
.union() .union()
.repeatForever() .repeatForever()
.start(); .start();
}); });
this.loading.active = true; this.loading.active = true;
} }
getRainbowColorList() { getRainbowColorList() {
return [ return [
cc.color(255, 255, 0), cc.color(255, 255, 0),
cc.color(128, 255, 0), cc.color(128, 255, 0),
cc.color(0, 255, 0), cc.color(0, 255, 0),
cc.color(0, 255, 128), cc.color(0, 255, 128),
cc.color(0, 255, 255), cc.color(0, 255, 255),
cc.color(0, 128, 255), cc.color(0, 128, 255),
cc.color(0, 0, 255), cc.color(0, 0, 255),
cc.color(128, 0, 255), cc.color(128, 0, 255),
cc.color(255, 0, 255), cc.color(255, 0, 255),
cc.color(255, 0, 128), cc.color(255, 0, 128),
cc.color(255, 0, 0), cc.color(255, 0, 0),
cc.color(255, 128, 0), cc.color(255, 128, 0),
cc.color(255, 255, 0), cc.color(255, 255, 0),
]; ];
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment