Commit 531fc82d authored by Tt's avatar Tt

修改需求

parent b9237bac
......@@ -2,6 +2,6 @@
"ver": "2.0.1",
"uuid": "e187dccb-ea0a-45de-be95-53c50683cd19",
"downloadMode": 0,
"duration": 1.188,
"duration": 1.708286,
"subMetas": {}
}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -103,8 +103,7 @@ cc.Class({
},
getDefaultData() {
return itemData;
// return defaultData;
return defaultData;
},
preloadItem() {
......@@ -173,6 +172,7 @@ cc.Class({
this.initSingleData();
this.initAudio();
this.initView();
this.initEvent();
},
......@@ -192,6 +192,8 @@ cc.Class({
_cardTouchItems: null,
_successItems: null,
initSingleData() {
this._cat = GameManager.getIns().cat;
this._tryagain = GameManager.getIns().tryagain;
this._stageData = GameManager.getIns().getStageData();
GameManager.getIns().setState(0);//调用数组中的数据,同时设置关卡状态为0
// console.log("1")
......@@ -211,6 +213,25 @@ cc.Class({
this.initLayout();
},
initLayout() {
if (GameManager.getIns().getState() == 0) {
this.state0InitPart();
} else if (GameManager.getIns().getState() == 1) {
this.state1StartPlay();
} else if (GameManager.getIns().getState() == 2) {
this.state2ComplatePlay();
} else if (GameManager.getIns().getState() == 3) {
this.state3GoodJob();
} else if (GameManager.getIns().getState() == 4) {
this.state4TryAgain();
} else if (GameManager.getIns().getState() == 5) {
this.state5Finish();
} else if (GameManager.getIns().getState() == 6) {
}
},
initEvent() {
let btn_mao = pg.view.find(this, "btn_mao")
let btn_carton = pg.view.find(this, "btn_carton")
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
......@@ -228,51 +249,188 @@ cc.Class({
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.touchOn(btn_record, this.onTouchRecord, this);//注册按钮监听
pg.view.touchOn(btn_next, this.onTouchNext, this);
pg.view.touchOn(btn_return, this.onTouchReturn, this);
pg.view.touchOn(btn_recording, this.onTouchRecording, this);
pg.view.touchOn(btn_replay, this.onTouchReplay, this);
pg.view.touchOn(btn_picture, this.onTouchPicture, this);
pg.view.touchOn(btn_carton, this.onTouchCarton, this);
pg.view.touchOn(icon_ex, this.onTouchWord, this);
pg.view.touchOn(btn_mao, this.onTouchCat, this);
},
state0InitPart() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
if (GameManager.getIns().getState() == 0) {
pg.view.visible(btn_record, false);
pg.view.visible(end, false);//不显示的内容用false
pg.view.visible(end_success, false);
pg.view.visible(icon_ex, false);
//更换书的样子
pg.view.visible(btn_next, true);//显示的内容用true
pg.view.visible(btn_return, true);
let bg_book_img = this._stageData.img;//从数组中调取img数据
pg.view.setNetImg(bg_book, bg_book_img);//与界面的节点绑定
//拓展加载动画的内容
this.animationName = "";
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(btn_replay, false);
pg.view.visible(btn_record, false);
pg.view.visible(end, false);//不显示的内容用false
pg.view.visible(end_success, false);
pg.view.visible(icon_ex, false);
//更换书的样子
pg.view.visible(btn_next, true);//显示的内容用true
pg.view.visible(btn_return, true);
let bg_book_img = this._stageData.img;//从数组中调取img数据
pg.view.setNetImg(bg_book, bg_book_img);//与界面的节点绑定
//拓展加载动画的内容
this.animationName = "";
this._tryagainCount = 0;
if (!this._cat || !this._cat.start || this._catStartPlayed) {
pg.view.loadDB(carton, { ske: this._stageData.cartoonSke, tex: this._stageData.cartoonTex, png: this._stageData.cartoonPng }).then((animationName) => {
this.animationName = animationName;
GameManager.getIns().setState(1);
this.initLayout()//完成后直接进入下一步
})
} else if (GameManager.getIns().getState() == 1) {
pg.view.visible(btn_replay, false);
pg.view.visible(btn_record, false);
let dragonDisplay = carton.getComponent(dragonBones.ArmatureDisplay);
dragonDisplay.playAnimation(this.animationName, 1);//animation所有的动画名称
icon_ex_txt.active = false;
icon_ex.active = false;
this._timeoutIds.push(setTimeout(() => {
pg.view.visible(icon_ex, true);
let icon_ex_word = this._stageData.word;
this.wordAni(icon_ex_txt, icon_ex_word)
pg.audio.playAudioByUrl(this._stageData.sound);
}, 1000 * 2));
this._timeoutIds.push(setTimeout(() => {
pg.view.visible(btn_record, true);
pg.view.visible(btn_replay, true);
this.playSFX("audio_record");
}, 1000 * 6.3));
this._timeoutIds.push(setTimeout(() => {
} else {
pg.audio.playAudioByUrl(this._cat.start).then(() => {
this._catStartPlayed = true;
pg.view.loadDB(carton, { ske: this._stageData.cartoonSke, tex: this._stageData.cartoonTex, png: this._stageData.cartoonPng }).then((animationName) => {
this.animationName = animationName;
GameManager.getIns().setState(1);
this.initLayout()//完成后直接进入下一步
})
})
}
},
state1StartPlay() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(btn_replay, false);
pg.view.visible(btn_record, false);
this.playPartAni()
this.playWordAni().then(() => {
this.playRecordAudio();
})
// this._timeoutIds.push(setTimeout(() => {
// pg.view.visible(icon_hand, true);
// let action = cc.tween(icon_hand);
// action.sequence(
// cc.tween().by(0.5, { y: 50 }),
// cc.tween().by(0.5, { y: -50 }),
// ).repeatForever();
// action.start();
// }, 1000 * 6.3));
},
state2ComplatePlay() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(icon_hand, false);
pg.view.visible(btn_record, false);
pg.view.visible(btn_replay, false);
pg.view.visible(btn_recording, true);
pg.view.visible(progress, true);
},
state3GoodJob() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(btn_record, false);
pg.view.visible(btn_recording, false);
pg.view.visible(progress, false);
this._timeoutIds.push(setTimeout(() => {//4秒钟之后出现goodjob提示
pg.view.visible(end, true);
pg.view.visible(end_success, true);
this.playSFX("audio_goodjob");
}, 1000 * 0.5));
this._timeoutIds.push(setTimeout(() => {
this.nextStage();
}, 1000 * 4));//6秒钟之后进入下一关卡
},
state4TryAgain() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
// 一局失败弹出tryagain,同时下方录音按钮明亮并出现提示
this.playSFX("audio_tryagain");
pg.view.visible(end, true);
pg.view.visible(bg_tryagain, true);
pg.view.visible(btn_recording, false);
pg.view.visible(btn_record, true);
pg.view.visible(progress, false);
this._playing = true;
this._tryagainCount++;
this._timeoutIds.push(setTimeout(() => {
if (this._tryagainCount == 1) {
pg.audio.playAudioByUrl(this._tryagain.one).then(() => {
this._playing = false;
})
// this.playSFX("audio_record");
pg.view.visible(icon_hand, true);
let action = cc.tween(icon_hand);
action.sequence(
......@@ -280,35 +438,11 @@ cc.Class({
cc.tween().by(0.5, { y: -50 }),
).repeatForever();
action.start();
}, 1000 * 6.3));
} else if (GameManager.getIns().getState() == 2) {
pg.view.visible(icon_hand, false);
pg.view.visible(btn_record, false);
pg.view.visible(btn_replay, false);
pg.view.visible(btn_recording, true);
pg.view.visible(progress, true);
} else if (GameManager.getIns().getState() == 3) {
pg.view.visible(btn_record, false);
pg.view.visible(btn_recording, false);
pg.view.visible(progress, false);
this._timeoutIds.push(setTimeout(() => {//4秒钟之后出现goodjob提示
pg.view.visible(end, true);
pg.view.visible(end_success, true);
this.playSFX("audio_goodjob");
}, 1000 * 0.5));
this._timeoutIds.push(setTimeout(() => {
this.nextStage();
}, 1000 * 4));//6秒钟之后进入下一关卡
} else if (GameManager.getIns().getState() == 4) {
// 一局失败弹出tryagain,同时下方录音按钮明亮并出现提示
pg.view.visible(end, true);
pg.view.visible(bg_tryagain, true);
pg.view.visible(btn_recording, false);
pg.view.visible(btn_record, true);
pg.view.visible(progress, false);
this._timeoutIds.push(setTimeout(() => {
this.playSFX("audio_record");
} else if (this._tryagainCount == 2) {
pg.audio.playAudioByUrl(this._tryagain.two).then(() => {
this._playing = false;
})
// this.playSFX("audio_record");
pg.view.visible(icon_hand, true);
let action = cc.tween(icon_hand);
action.sequence(
......@@ -316,67 +450,188 @@ cc.Class({
cc.tween().by(0.5, { y: -50 }),
).repeatForever();
action.start();
}, 1000 * 1));
} else {
pg.audio.playAudioByUrl(this._tryagain.three).then(() => {
this._playing = false;
this.nextStage();
})
}
}, 1000 * 1));
},
state5Finish() {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(end, false);
pg.view.visible(end_success, false);
pg.view.visible(bg_tryagain, false);
} else if (GameManager.getIns().getState() == 5) {
pg.view.visible(end, false);
pg.view.visible(end_success, false);
pg.view.visible(bg_tryagain, false);
this.playSFX("audio_finish");
// pg.view.visible(btn_picture, true);
pg.view.visible(btn_record, false);
onHomeworkFinish && onHomeworkFinish();
} else if (GameManager.getIns().getState() == 6) {
}
pg.audio.playAudioByUrl(this._cat.finish)
// this.playSFX("audio_finish");
// pg.view.visible(btn_picture, true);
pg.view.visible(btn_record, false);
onHomeworkFinish && onHomeworkFinish();
},
playPartAni() {
return new Promise((resolve, reject) => {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
let dragonDisplay = carton.getComponent(dragonBones.ArmatureDisplay);
dragonDisplay.playAnimation(this.animationName, 1);//animation所有的动画名称
});
},
playWordAni() {
return new Promise((resolve, reject) => {
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
this._playing = true;
icon_ex_txt.active = false;
icon_ex.active = false;
this._timeoutIds.push(setTimeout(() => {
pg.view.visible(icon_ex, true);
let icon_ex_word = this._stageData.word;
let aniFinished = false;
let audioFinished = false;
this.wordAni(icon_ex_txt, icon_ex_word).then(() => {
aniFinished = true;
if (aniFinished && audioFinished) {
this._playing = false;
resolve('');
}
})
pg.audio.playAudioByUrl(this._stageData.sound).then(() => {
audioFinished = true;
if (aniFinished && audioFinished) {
this._playing = false;
resolve('');
}
})
}, 1000 * 2));
});
},
playRecordAudio() {
return new Promise((resolve, reject) => {
this._playing = true;
let btn_replay = pg.view.find(this, "btn_replay")
let btn_recording = pg.view.find(this, "btn_recording")
let btn_record = pg.view.find(this, "btn_record")
let progress = pg.view.find(this, "progress")
let end = pg.view.find(this, "end");
let end_success = pg.view.find(end, "bg_success")
let bg_tryagain = pg.view.find(end, "bg_tryagain")
let carton = pg.view.find(this, "carton")
let bg_book = pg.view.find(this, "bg_book");
let icon_ex = pg.view.find(this, "icon_ex");
let btn_next = pg.view.find(this, "btn_next");
let btn_return = pg.view.find(this, "btn_return");
let icon_ex_txt = pg.view.find(icon_ex, "txt");
let icon_hand = pg.view.find(this, "icon_hand");
let btn_picture = pg.view.find(this, "btn_picture");
pg.view.visible(btn_record, true);
pg.view.visible(btn_replay, true);
if (this._audio_record) {
this._playing = false;
resolve("");
} else {
this._audio_record = true;
pg.audio.playAudioByUrl(this._cat.record).then(() => {
this._playing = false;
resolve('');
})
}
});
},
wordAni(item, content) {
item.active = true;
let itemfirst = pg.view.find(item, "first");
//动态居中算法。
//锚点在中间,左右延长,第一个字不去显示
let contentArr = content.split("");
let s0 = contentArr.shift();
let s1 = contentArr.join("");
//首字母变大
let count = 100;
let max = 150;
let str1 = `<size=${max}><color=#ffffff>${s0}</color></size><size=${count}><color=#0000>${s1}</color></size>`
let strfirst1 = `<size=${max}><color=#fc4a4a>${s0}</color></size>`;
item.getComponent(cc.RichText).string = str1;
itemfirst.y = 17;
itemfirst.getComponent(cc.RichText).string = strfirst1;
return new Promise((resolve, reject) => {
item.active = true;
let itemfirst = pg.view.find(item, "first");
//动态居中算法。
//锚点在中间,左右延长,第一个字不去显示
let contentArr = content.split("");
let s0 = contentArr.shift();
let s1 = contentArr.join("");
//首字母变大
let count = 100;
let max = 150;
let str1 = `<size=${max}><color=#ffffff>${s0}</color></size><size=${count}><color=#0000>${s1}</color></size>`
let strfirst1 = `<size=${max}><color=#fc4a4a>${s0}</color></size>`;
item.getComponent(cc.RichText).string = str1;
itemfirst.y = 17;
itemfirst.getComponent(cc.RichText).string = strfirst1;
this._timeoutIds.push(setTimeout(() => {
let times = 20;
let time = 0;
let inter = setInterval(() => {
time++;
let nowCount = count + (max - count) * (time / times);
if (nowCount >= 150) {
nowCount = 150;
clearInterval(inter);
}
let str2 = `<size=${max}><color=#ffffff>${s0}</color></size><size=${nowCount}><color=#0000>${s1}</color></size>`
itemfirst.y = 0;
item.getComponent(cc.RichText).string = str2;
}, 30);
this._intervalIds.push(inter);
}, 4100));
// setTimeout(() => {
// //全部变大
// let str2 = `<size=150><color=#ffffff>${s0}</color><color=#0000>${s1}</color></size>`
// itemfirst.y = 0;
// item.getComponent(cc.RichText).string = str2;
// }, 1100);
this._timeoutIds.push(setTimeout(() => {
let times = 20;
let time = 0;
let inter = setInterval(() => {
time++;
let nowCount = count + (max - count) * (time / times);
if (nowCount >= 150) {
nowCount = 150;
clearInterval(inter);
}
let str2 = `<size=${max}><color=#ffffff>${s0}</color></size><size=${nowCount}><color=#0000>${s1}</color></size>`
itemfirst.y = 0;
item.getComponent(cc.RichText).string = str2;
}, 30);
this._intervalIds.push(inter);
setTimeout(() => {
resolve('');
}, 1200);
}, 4100));
});
},
//按钮触发,使用的方法
onTouchRecord() {
if (this._playing) return;
this.playSFX("audio_btns");
let end = pg.view.find(this, "end");
let bg_tryagain = pg.view.find(end, "bg_tryagain")
......@@ -393,12 +648,12 @@ cc.Class({
"recordId": "6144295213f0a2200000ed93",
"eof": 1,
"result": {
"pronunciation": 75,
"pronunciation": 25,
"resource_version": "3.1.0",
"fluency": 60,
"rhythm": 90,
"kernel_version": "5.2.4",
"overall": 74,
"overall": 75,
"integrity": 100,
"duration": "6.779",
"rear_tone": "fall",
......@@ -437,6 +692,7 @@ cc.Class({
},
onTouchReplay() {
if (this._playing) return;
this.playSFX("audio_btns");
GameManager.getIns().setState(1);
this.initLayout()
......@@ -445,6 +701,25 @@ cc.Class({
// this.playSFX("audio_btns");
},
onTouchCarton() {
if (this._playing) return;
this._playing = true;
this.playPartAni();
setTimeout(() => {
this._playing = false;
}, 900);
},
onTouchWord() {
if (this._playing) return;
this.playWordAni();
},
onTouchCat() {
if (this._playing) return;
this._playing = true;
pg.audio.playAudioByUrl(this._cat.wait).then(() => {
this._playing = false;
})
},
nextStage() {
let isOver = GameManager.getIns().addStage();//关卡标记+1
......@@ -561,8 +836,10 @@ cc.Class({
if (!audioSource) return resolve();
let audioClip = audioSource.clip;
if (!audioClip) return resolve();
cc.audioEngine.play(audioClip, false, 1);
resolve('');
let id = cc.audioEngine.play(audioClip, false, 1);
cc.audioEngine.setFinishCallback(id, () => {
resolve();
})
});
},
......
......@@ -13,13 +13,17 @@ class GameManager {
this._list = [];
this._stage = 0;//关卡
this._state = 0;//状态
this._cat = {};
this._tryagain = {};
}
init() {
console.log(`init`);
}
parseData(data) {
console.log(data);
let arr = data.contentObj.picArr;
this._cat = data.contentObj.picArr.cat;
this._tryagain = data.contentObj.picArr.tryagain;
let arr = data.contentObj.picArr.list;
for (let i = 0; i < arr.length; i++) {
let ar = arr[i];
let obj = {};
......@@ -33,6 +37,12 @@ class GameManager {
}
console.log(this._list);//原始数据转为数组
}
get cat() {
return this._cat;
}
get tryagain() {
return this._tryagain;
}
setState(num) {
this._state = num;
}
......
......@@ -3,7 +3,10 @@ export const defaultData = {
{
"picArr": {
"cat": {
"start": "http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3", "record": "http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3", "wait": "http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3", "finish": "http://staging-teach.cdn.ireadabc.com/f1ce89b2162d82214369265e47d3dda3.mp3"
"start": "http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3",
"record": "http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3",
"wait": "http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3",
"finish": "http://staging-teach.cdn.ireadabc.com/f1ce89b2162d82214369265e47d3dda3.mp3"
},
"tryagain": {
"one": "http://staging-teach.cdn.ireadabc.com/bdc09d9eb89b73e67357b502ae2158dd.mp3", "two": "http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3", "three": "http://staging-teach.cdn.ireadabc.com/301ec5c708d22928ccf2162215f429fe.mp3"
......
......@@ -7,8 +7,8 @@
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 244,
"height": 232,
"width": 176,
"height": 206,
"platformSettings": {},
"subMetas": {
"btn_replay": {
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 244,
"height": 232,
"rawWidth": 244,
"rawHeight": 232,
"width": 176,
"height": 206,
"rawWidth": 176,
"rawHeight": 206,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 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