Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
middleLayer_for_debug
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
template admin
middleLayer_for_debug
Commits
44973cb8
Commit
44973cb8
authored
Mar 10, 2022
by
范雪寒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 适配ui尺寸
parent
963fe620
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
940 additions
and
897 deletions
+940
-897
middleLayer_for_debug.fire
...ts/middleLayer_for_debug/scene/middleLayer_for_debug.fire
+108
-139
middleLayer.js
assets/middleLayer_for_debug/script/middleLayer.js
+832
-758
No files found.
assets/middleLayer_for_debug/scene/middleLayer_for_debug.fire
View file @
44973cb8
...
...
@@ -295,25 +295,25 @@
"__id__": 20
},
{
"__id__": 13
8
"__id__": 13
7
},
{
"__id__": 17
3
"__id__": 17
2
},
{
"__id__": 17
7
"__id__": 17
6
},
{
"__id__": 17
9
"__id__": 17
8
}
],
"_active": true,
"_components": [
{
"__id__": 1
90
"__id__": 1
89
},
{
"__id__": 19
1
"__id__": 19
0
}
],
"_prefab": null,
...
...
@@ -1013,11 +1013,7 @@
}
],
"_active": true,
"_components": [
{
"__id__": 137
}
],
"_components": [],
"_prefab": null,
"_opacity": 255,
"_color": {
...
...
@@ -1029,8 +1025,8 @@
},
"_contentSize": {
"__type__": "cc.Size",
"width": 1
28
0,
"height":
72
0
"width": 1
12
0,
"height":
51
0
},
"_anchorPoint": {
"__type__": "cc.Vec2",
...
...
@@ -6784,33 +6780,6 @@
"_N$reverse": false,
"_id": "bc3W7j5EVJRaoW20bSToA3"
},
{
"__type__": "cc.Widget",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 20
},
"_enabled": true,
"alignMode": 2,
"_target": null,
"_alignFlags": 45,
"_left": 0,
"_right": 0,
"_top": 0,
"_bottom": 0,
"_verticalCenter": 0,
"_horizontalCenter": 0,
"_isAbsLeft": true,
"_isAbsRight": true,
"_isAbsTop": true,
"_isAbsBottom": true,
"_isAbsHorizontalCenter": true,
"_isAbsVerticalCenter": true,
"_originalWidth": 1280,
"_originalHeight": 720,
"_id": "c87OiuHMRI7YOL5SUoikbx"
},
{
"__type__": "cc.Node",
"_name": "ConsoleNode",
...
...
@@ -6820,25 +6789,25 @@
},
"_children": [
{
"__id__": 13
9
"__id__": 13
8
},
{
"__id__": 14
5
"__id__": 14
4
},
{
"__id__": 14
8
"__id__": 14
7
},
{
"__id__": 15
6
"__id__": 15
5
},
{
"__id__": 16
4
"__id__": 16
3
}
],
"_active": true,
"_components": [
{
"__id__": 17
2
"__id__": 17
1
}
],
"_prefab": null,
...
...
@@ -6894,20 +6863,20 @@
"_name": "content",
"_objFlags": 0,
"_parent": {
"__id__": 13
8
"__id__": 13
7
},
"_children": [
{
"__id__": 1
40
"__id__": 1
39
}
],
"_active": false,
"_components": [
{
"__id__": 14
3
"__id__": 14
2
},
{
"__id__": 14
4
"__id__": 14
3
}
],
"_prefab": null,
...
...
@@ -6963,16 +6932,16 @@
"_name": "label",
"_objFlags": 0,
"_parent": {
"__id__": 13
9
"__id__": 13
8
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 14
1
"__id__": 14
0
},
{
"__id__": 14
2
"__id__": 14
1
}
],
"_prefab": null,
...
...
@@ -7028,7 +6997,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
40
"__id__": 1
39
},
"_enabled": true,
"_materials": [
...
...
@@ -7061,7 +7030,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
40
"__id__": 1
39
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -7088,7 +7057,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 13
9
"__id__": 13
8
},
"_enabled": true,
"_layoutSize": {
...
...
@@ -7120,7 +7089,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 13
9
"__id__": 13
8
},
"_enabled": true,
"alignMode": 2,
...
...
@@ -7147,16 +7116,16 @@
"_name": "bg",
"_objFlags": 0,
"_parent": {
"__id__": 13
8
"__id__": 13
7
},
"_children": [],
"_active": false,
"_components": [
{
"__id__": 14
6
"__id__": 14
5
},
{
"__id__": 14
7
"__id__": 14
6
}
],
"_prefab": null,
...
...
@@ -7212,7 +7181,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
5
"__id__": 14
4
},
"_enabled": true,
"_materials": [
...
...
@@ -7244,7 +7213,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
5
"__id__": 14
4
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -7271,15 +7240,18 @@
"_name": "Console",
"_objFlags": 0,
"_parent": {
"__id__": 13
8
"__id__": 13
7
},
"_children": [
{
"__id__": 14
9
"__id__": 14
8
}
],
"_active": false,
"_components": [
{
"__id__": 151
},
{
"__id__": 152
},
...
...
@@ -7288,9 +7260,6 @@
},
{
"__id__": 154
},
{
"__id__": 155
}
],
"_prefab": null,
...
...
@@ -7346,16 +7315,16 @@
"_name": "content",
"_objFlags": 0,
"_parent": {
"__id__": 14
8
"__id__": 14
7
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 1
50
"__id__": 1
49
},
{
"__id__": 15
1
"__id__": 15
0
}
],
"_prefab": null,
...
...
@@ -7411,7 +7380,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
9
"__id__": 14
8
},
"_enabled": true,
"_layoutSize": {
...
...
@@ -7443,7 +7412,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
9
"__id__": 14
8
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -7470,7 +7439,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
8
"__id__": 14
7
},
"_enabled": true,
"alignMode": 2,
...
...
@@ -7497,7 +7466,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
8
"__id__": 14
7
},
"_enabled": true,
"_materials": [
...
...
@@ -7517,7 +7486,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
8
"__id__": 14
7
},
"_enabled": true,
"horizontal": false,
...
...
@@ -7529,10 +7498,10 @@
"scrollEvents": [],
"cancelInnerEvents": true,
"_N$content": {
"__id__": 14
9
"__id__": 14
8
},
"content": {
"__id__": 14
9
"__id__": 14
8
},
"_id": "43wBGhGBpFP7OYyNM+j0Ho"
},
...
...
@@ -7541,7 +7510,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 14
8
"__id__": 14
7
},
"_enabled": true,
"_layoutSize": {
...
...
@@ -7573,20 +7542,20 @@
"_name": "BtnClose",
"_objFlags": 0,
"_parent": {
"__id__": 13
8
"__id__": 13
7
},
"_children": [
{
"__id__": 15
7
"__id__": 15
6
}
],
"_active": false,
"_components": [
{
"__id__": 16
2
"__id__": 16
1
},
{
"__id__": 16
3
"__id__": 16
2
}
],
"_prefab": null,
...
...
@@ -7642,20 +7611,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
"__id__": 15
6
"__id__": 15
5
},
"_children": [
{
"__id__": 15
8
"__id__": 15
7
}
],
"_active": true,
"_components": [
{
"__id__": 1
60
"__id__": 1
59
},
{
"__id__": 16
1
"__id__": 16
0
}
],
"_prefab": null,
...
...
@@ -7711,13 +7680,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
"__id__": 15
7
"__id__": 15
6
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 15
9
"__id__": 15
8
}
],
"_prefab": null,
...
...
@@ -7773,7 +7742,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 15
8
"__id__": 15
7
},
"_enabled": true,
"_materials": [
...
...
@@ -7806,7 +7775,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 15
7
"__id__": 15
6
},
"_enabled": true,
"_materials": [
...
...
@@ -7838,7 +7807,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 15
7
"__id__": 15
6
},
"_enabled": true,
"alignMode": 0,
...
...
@@ -7865,7 +7834,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 15
6
"__id__": 15
5
},
"_enabled": true,
"_normalMaterial": null,
...
...
@@ -7938,7 +7907,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
"__id__": 15
7
"__id__": 15
6
},
"_id": "54SC9WcmBAZ6cTznyI0o+3"
},
...
...
@@ -7947,7 +7916,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 15
6
"__id__": 15
5
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -7974,20 +7943,20 @@
"_name": "BtnOpen",
"_objFlags": 0,
"_parent": {
"__id__": 13
8
"__id__": 13
7
},
"_children": [
{
"__id__": 16
5
"__id__": 16
4
}
],
"_active": false,
"_components": [
{
"__id__": 1
70
"__id__": 1
69
},
{
"__id__": 17
1
"__id__": 17
0
}
],
"_prefab": null,
...
...
@@ -8043,20 +8012,20 @@
"_name": "Background",
"_objFlags": 512,
"_parent": {
"__id__": 16
4
"__id__": 16
3
},
"_children": [
{
"__id__": 16
6
"__id__": 16
5
}
],
"_active": true,
"_components": [
{
"__id__": 16
8
"__id__": 16
7
},
{
"__id__": 16
9
"__id__": 16
8
}
],
"_prefab": null,
...
...
@@ -8112,13 +8081,13 @@
"_name": "Label",
"_objFlags": 512,
"_parent": {
"__id__": 16
5
"__id__": 16
4
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 16
7
"__id__": 16
6
}
],
"_prefab": null,
...
...
@@ -8174,7 +8143,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
6
"__id__": 16
5
},
"_enabled": true,
"_materials": [
...
...
@@ -8207,7 +8176,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
5
"__id__": 16
4
},
"_enabled": true,
"_materials": [
...
...
@@ -8239,7 +8208,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
5
"__id__": 16
4
},
"_enabled": true,
"alignMode": 0,
...
...
@@ -8266,7 +8235,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
4
"__id__": 16
3
},
"_enabled": true,
"_normalMaterial": null,
...
...
@@ -8339,7 +8308,7 @@
"__uuid__": "29158224-f8dd-4661-a796-1ffab537140e"
},
"_N$target": {
"__id__": 16
5
"__id__": 16
4
},
"_id": "81HoUuRyJOppi+n4Av/u0p"
},
...
...
@@ -8348,7 +8317,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 16
4
"__id__": 16
3
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -8375,7 +8344,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 13
8
"__id__": 13
7
},
"_enabled": true,
"alignMode": 1,
...
...
@@ -8408,13 +8377,13 @@
"_active": false,
"_components": [
{
"__id__": 17
4
"__id__": 17
3
},
{
"__id__": 17
5
"__id__": 17
4
},
{
"__id__": 17
6
"__id__": 17
5
}
],
"_prefab": null,
...
...
@@ -8470,7 +8439,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
3
"__id__": 17
2
},
"_enabled": true,
"alignMode": 2,
...
...
@@ -8497,7 +8466,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
3
"__id__": 17
2
},
"_enabled": true,
"_normalMaterial": null,
...
...
@@ -8565,7 +8534,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
3
"__id__": 17
2
},
"_enabled": true,
"_materials": [
...
...
@@ -8603,7 +8572,7 @@
"_active": true,
"_components": [
{
"__id__": 17
8
"__id__": 17
7
}
],
"_prefab": null,
...
...
@@ -8659,7 +8628,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 17
7
"__id__": 17
6
},
"_enabled": true,
"_layoutSize": {
...
...
@@ -8695,10 +8664,10 @@
},
"_children": [
{
"__id__": 1
80
"__id__": 1
79
},
{
"__id__": 18
3
"__id__": 18
2
}
],
"_active": false,
...
...
@@ -8756,16 +8725,16 @@
"_name": "loading",
"_objFlags": 0,
"_parent": {
"__id__": 17
9
"__id__": 17
8
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 18
1
"__id__": 18
0
},
{
"__id__": 18
2
"__id__": 18
1
}
],
"_prefab": null,
...
...
@@ -8821,7 +8790,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
80
"__id__": 1
79
},
"_enabled": true,
"_materials": [
...
...
@@ -8853,7 +8822,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
80
"__id__": 1
79
},
"_enabled": true,
"_defaultClip": {
...
...
@@ -8872,24 +8841,24 @@
"_name": "progress",
"_objFlags": 0,
"_parent": {
"__id__": 17
9
"__id__": 17
8
},
"_children": [
{
"__id__": 18
4
"__id__": 18
3
}
],
"_active": true,
"_components": [
{
"__id__": 18
7
"__id__": 18
6
},
{
"__id__": 18
8
"__id__": 18
7
}
],
"_prefab": {
"__id__": 18
9
"__id__": 18
8
},
"_opacity": 255,
"_color": {
...
...
@@ -8943,17 +8912,17 @@
"_name": "bar",
"_objFlags": 0,
"_parent": {
"__id__": 18
3
"__id__": 18
2
},
"_children": [],
"_active": true,
"_components": [
{
"__id__": 18
5
"__id__": 18
4
}
],
"_prefab": {
"__id__": 18
6
"__id__": 18
5
},
"_opacity": 255,
"_color": {
...
...
@@ -9007,7 +8976,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 18
4
"__id__": 18
3
},
"_enabled": true,
"_materials": [
...
...
@@ -9037,7 +9006,7 @@
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 18
3
"__id__": 18
2
},
"asset": {
"__uuid__": "3d356c4d-cb23-4239-aa5f-8a913f420fa4"
...
...
@@ -9050,7 +9019,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 18
3
"__id__": 18
2
},
"_enabled": true,
"_materials": [
...
...
@@ -9082,7 +9051,7 @@
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 18
3
"__id__": 18
2
},
"_enabled": true,
"_id": "3eMT/DXoJNGZT/8Z3nuTUH"
...
...
@@ -9090,7 +9059,7 @@
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 18
3
"__id__": 18
2
},
"asset": {
"__uuid__": "3d356c4d-cb23-4239-aa5f-8a913f420fa4"
...
...
assets/middleLayer_for_debug/script/middleLayer.js
View file @
44973cb8
import
{
initAir
}
from
'
./air
'
;
import
{
initAir
}
from
"
./air
"
;
cc
.
Class
({
extends
:
cc
.
Component
,
properties
:
{
},
callNetworkApiPost
(
baseUrl
,
uri
,
data
,
callBack
)
{
this
.
getBaseUrl
((
baseUrl
)
=>
{
const
xhr
=
new
XMLHttpRequest
();
const
url
=
`
${
baseUrl
}${
uri
}
`
;
xhr
.
open
(
"
POST
"
,
url
,
true
);
xhr
.
setRequestHeader
(
'
content-type
'
,
'
application/json
'
);
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
)
{
callBack
(
JSON
.
parse
(
xhr
.
responseText
));
}
}
xhr
.
send
(
JSON
.
stringify
(
data
));
});
},
callNetworkApiGet
(
baseUrl
,
uri
,
data
,
callBack
)
{
this
.
getBaseUrl
((
baseUrl
)
=>
{
let
queryStr
=
'
?
'
;
const
params
=
[];
for
(
const
key
in
data
)
{
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
}
}
queryStr
+=
params
.
join
(
"
&
"
);
const
xhr
=
new
XMLHttpRequest
();
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
callBack
(
xhr
.
responseText
);
}
};
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
'
url =
'
+
url
);
xhr
.
open
(
'
GET
'
,
url
,
true
);
xhr
.
send
();
});
},
callNetworkApiGetLocal
(
baseUrl
,
uri
,
data
,
callBack
)
{
let
queryStr
=
'
?
'
;
const
params
=
[];
for
(
const
key
in
data
)
{
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
}
}
queryStr
+=
params
.
join
(
"
&
"
);
const
xhr
=
new
XMLHttpRequest
();
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
callBack
(
xhr
.
responseText
);
}
};
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
'
url =
'
+
url
);
xhr
.
open
(
'
GET
'
,
url
,
true
);
xhr
.
send
();
},
// 需要预加载的数量
preloadCount
:
null
,
// 统计已加载的数量
loadedCount
:
null
,
// 统一释放异步资源的方法
onLoad
()
{
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
initAir
(
this
);
// this.preloadAll();
},
getBaseUrl
(
callback
)
{
if
(
window
.
air
.
engineInfo
){
if
(
window
.
air
.
engineInfo
.
isDev
==
1
){
callback
(
'
https://staging-teach.ireadabc.com
'
);
}
else
{
callback
(
'
https://iteachabc.com
'
);
}
}
else
{
window
.
courseware
.
getEngineInfo
(()
=>
{
if
(
window
.
air
.
engineInfo
.
isDev
==
1
){
callback
(
'
https://staging-teach.ireadabc.com
'
);
}
else
{
callback
(
'
https://iteachabc.com
'
);
}
});
}
},
start
()
{
this
.
node
.
zIndex
=
9999
;
cc
.
game
.
addPersistRootNode
(
this
.
node
);
this
.
initListener
();
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
const
str
=
cc
.
sys
.
localStorage
.
getItem
(
'
ip
'
);
console
.
log
(
'
str =
'
+
str
);
if
(
str
)
{
addressText
.
getComponent
(
cc
.
EditBox
).
string
=
str
;
}
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
const
bundleName
=
cc
.
sys
.
localStorage
.
getItem
(
'
bundleName
'
);
if
(
bundleName
)
{
nameText
.
getComponent
(
cc
.
EditBox
).
string
=
bundleName
;
}
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
const
courseId
=
cc
.
sys
.
localStorage
.
getItem
(
'
courseId
'
);
if
(
courseId
)
{
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
=
courseId
;
}
global
.
middleLayer
=
cc
.
find
(
'
middleLayer
'
).
getComponent
(
'
middleLayer
'
);
middleLayer
.
log
(
"
middleLayer.log('像这样在这里打log')
"
);
},
preloadAll
()
{
if
(
window
.
preloadBundleAndSourcesFlag
)
{
// 只加载一次就行了
return
;
}
window
.
preloadBundleAndSourcesFlag
=
true
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
let
platform
=
"
web_desktop
"
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
platform
=
"
ios
"
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
platform
=
"
android
"
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allbundles`
,
{
orgid
:
483
,
platform
},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data
.
rows
.
length
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allresources`
,
{
orgid
:
483
},
(
datastr1
)
=>
{
const
data1
=
JSON
.
parse
(
datastr1
);
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
console
.
log
(
'
data.rows =
'
+
JSON
.
stringify
(
data
.
rows
));
this
.
batchPreloadScene
(
data
.
rows
);
this
.
preloadSource
(
data1
.
rows
);
});
});
},
preloadSourceImman
()
{
// 测试用
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/courseware/v1/getresources`
,
{
courseid
:
20894
},
(
datastr1
)
=>
{
const
data1
=
JSON
.
parse
(
datastr1
);
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
this
.
log
(
'
data1.rows =
'
+
JSON
.
stringify
(
data1
.
rows
));
this
.
preloadSource
(
data1
.
rows
);
});
},
batchPreloadScene
(
scenes
=
[])
{
const
expects
=
[
// 'op_03_2',
// 'OP10_online',
];
const
_this
=
this
;
let
i
=
0
;
const
load
=
function
()
{
const
scene
=
scenes
[
i
];
if
(
expects
.
includes
(
scene
.
sceneName
))
{
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
return
;
}
cc
.
assetManager
.
loadBundle
(
scene
.
bondleUrl
,
{
version
:
scene
.
version
},
(
err
,
bundle
)
=>
{
console
.
log
(
`
${
scene
.
bondleUrl
}
---场景开始loadBundle----`
);
if
(
!
bundle
)
{
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
return
;
}
bundle
.
preloadScene
(
scene
.
sceneName
,
()
=>
{
},
()
=>
{
console
.
log
(
`
${
scene
.
sceneName
}
场景预加载结束`
);
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
});
});
}
if
(
scenes
&&
scenes
.
length
>
0
)
{
load
();
}
},
preloadSource
(
array
)
{
const
rows
=
array
||
[];
const
batchLoad
=
()
=>
{
let
tempArr
=
rows
.
splice
(
0
,
10
);
let
len
=
tempArr
.
length
;
for
(
let
i
=
0
;
i
<
tempArr
.
length
;
i
++
)
{
cc
.
assetManager
.
loadRemote
(
tempArr
[
i
],
(
err
,
texture
)
=>
{
if
(
err
)
{
console
.
log
(
err
)
}
this
.
loadedCount
++
;
this
.
updateProcessBar
();
if
(
i
===
len
-
1
)
{
batchLoad
();
}
});
}
}
batchLoad
();
},
updateProcessBar
()
{
const
label
=
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
getComponent
(
cc
.
Label
);
const
loadingProgress
=
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
);
label
.
string
=
`正在加载:
${
this
.
loadedCount
}
/
${
this
.
preloadCount
}
`
;
if
(
this
.
loadedCount
>
this
.
preloadCount
*
0.99
)
{
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
false
;
loadingProgress
.
active
=
false
;
this
.
showLog
(
"
资源全部加载完成
"
);
}
loadingProgress
.
getComponent
(
cc
.
ProgressBar
).
progress
=
this
.
loadedCount
/
this
.
preloadCount
;
},
asyncDelayLog
(
str
)
{
console
.
log
(
str
);
return
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(()
=>
{
resolve
();
},
1
);
});
},
initListener
()
{
const
exitBtn
=
cc
.
find
(
'
middleLayer/ExitBtn
'
);
exitBtn
.
on
(
'
click
'
,
()
=>
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
cc
.
tween
(
exitBtn
)
.
to
(
0.1
,
{
scaleX
:
0.4
,
scaleY
:
0.6
})
.
to
(
0.1
,
{
scaleX
:
0.6
,
scaleY
:
0.4
})
.
to
(
0.1
,
{
scaleX
:
0.5
,
scaleY
:
0.5
})
.
call
(()
=>
{
exitBtn
.
active
=
false
;
cc
.
game
.
removePersistRootNode
(
this
.
node
);
// cc.director.getScene().destroy();
cc
.
audioEngine
.
stopAll
();
window
.
courseware
.
freeAllOcMethod
();
cc
.
director
.
loadScene
(
"
debug_shell
"
,
null
,
null
,
(
err
,
scene
)
=>
{
});
})
.
start
();
});
cc
.
find
(
'
middleLayer/BtnRight
'
).
on
(
'
click
'
,
()
=>
{
this
.
goNextPage
();
});
cc
.
find
(
'
middleLayer/BtnLeft
'
).
on
(
'
click
'
,
()
=>
{
this
.
goPrePage
();
});
cc
.
find
(
'
middleLayer/ui/BtnOpenOsmo
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
openOsmo
();
});
cc
.
find
(
'
middleLayer/ui/BtnCloseOsmo
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
closeOsmo
();
});
cc
.
find
(
'
middleLayer/ui/BtnOpenRecord
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
startRecord
(
1
);
});
cc
.
find
(
'
middleLayer/ui/BtnCloseRecord
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
stopRecord
(
res
=>
{
this
.
log
(
'
--------录音返回结果 stopRecord ------------
'
);
this
.
log
(
JSON
.
stringify
(
res
))
this
.
log
(
'
------------------------------
'
);
});
});
cc
.
find
(
'
middleLayer/ui/BtnOpenTest
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
startTest
(
''
);
});
cc
.
find
(
'
middleLayer/ui/BtnCloseTest
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
stopTest
(
res
=>
{
this
.
log
(
'
--------录音评测返回结果 stopTest ---------
'
);
this
.
log
(
JSON
.
stringify
(
res
))
this
.
log
(
'
------------------------------
'
);
});
});
const
BtnStartLocal
=
cc
.
find
(
'
middleLayer/ui/BtnStartLocal
'
);
BtnStartLocal
.
on
(
'
click
'
,
()
=>
{
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
const
str
=
addressText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
'
ip
'
,
str
);
const
address
=
str
.
split
(
'
:
'
)[
0
];
const
port
=
str
.
split
(
'
:
'
)[
0
]
|
8081
;
this
.
localMode
=
true
;
this
.
loadLocalBundle
(
address
,
port
);
this
.
showWaitingLetters
();
this
.
hideUI
();
this
.
showDebugUI
();
});
const
BtnStartOnline
=
cc
.
find
(
'
middleLayer/ui/BtnStartOnline
'
);
BtnStartOnline
.
on
(
'
click
'
,
()
=>
{
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
const
bundleName
=
nameText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
'
bundleName
'
,
bundleName
);
this
.
loadOnlineBundle
(
bundleName
);
this
.
showDebugUI
();
});
const
BtnStartCourseWare
=
cc
.
find
(
'
middleLayer/ui/BtnStartCourseWare
'
);
BtnStartCourseWare
.
on
(
'
click
'
,
()
=>
{
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
const
courseId
=
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
'
courseId
'
,
courseId
);
this
.
loadOnlineCourseWare
(
courseId
);
this
.
showDebugUI
();
});
const
BtnLoad
=
cc
.
find
(
'
middleLayer/ui/BtnLoad
'
);
BtnLoad
.
on
(
'
click
'
,
()
=>
{
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
// this.preloadAll();
this
.
preloadSourceImman
();
});
const
btnClose
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnClose
'
);
const
btnOpen
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnOpen
'
);
const
consoleNode
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console
'
);
const
consoleBg
=
cc
.
find
(
'
middleLayer/ConsoleNode/bg
'
);
btnOpen
.
on
(
'
click
'
,
()
=>
{
btnClose
.
active
=
true
;
btnOpen
.
active
=
false
;
consoleNode
.
active
=
true
;
consoleBg
.
active
=
true
;
});
btnClose
.
on
(
'
click
'
,
()
=>
{
btnClose
.
active
=
false
;
btnOpen
.
active
=
true
;
consoleNode
.
active
=
false
;
consoleBg
.
active
=
false
;
});
},
goPrePage
()
{
this
.
goTarIndexPage
(
this
.
courseIndex
-
1
);
},
goNextPage
()
{
this
.
goTarIndexPage
(
this
.
courseIndex
+
1
);
},
goTarIndexPage
(
index
)
{
if
(
!
this
.
courses
||
index
==
this
.
courseIndex
||
index
<
0
||
index
>
this
.
courses
.
length
-
1
)
{
return
;
}
window
.
courseware
.
freeAllOcMethod
();
this
.
courseIndex
=
index
;
this
.
courseItem
=
this
.
courses
[
this
.
courseIndex
];
if
(
this
.
courseIndex
==
0
)
{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
}
else
{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
}
if
(
this
.
courseIndex
==
this
.
courses
.
length
-
1
)
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
}
else
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
}
this
.
loadPageBundle
();
},
log
(
str
)
{
const
logStr
=
`
${
new
Date
().
toLocaleString
()}
:
${
str
}
`
;
console
.
log
(
logStr
);
const
content
=
cc
.
instantiate
(
cc
.
find
(
'
middleLayer/ConsoleNode/content
'
));
content
.
active
=
true
;
const
label
=
content
.
getChildByName
(
'
label
'
);
label
.
getComponent
(
cc
.
Label
).
string
=
logStr
;
const
consoleContent
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console/content
'
);
consoleContent
.
addChild
(
content
);
consoleContent
.
getComponent
(
cc
.
Layout
).
updateLayout
();
},
hideUI
()
{
cc
.
find
(
'
middleLayer/ui
'
).
active
=
false
;
},
loadOnlineBundle
(
bundleName
)
{
this
.
hideUI
();
this
.
showWaitingLetters
();
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/template/v1/
${
bundleName
}
`
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
let
configData
=
null
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
configData
=
data
.
data
.
conf
.
ios
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
configData
=
data
.
data
.
conf
.
android
;
}
else
{
configData
=
data
.
data
.
conf
.
web_desktop
;
}
const
sceneName
=
configData
.
sceneName
;
const
version
=
configData
.
version
;
const
bondleUrl
=
configData
.
bondleUrl
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
});
},
courses
:
null
,
courseIndex
:
0
,
courseItem
:
null
,
loadOnlineCourseWare
(
courseId
,
linkFlag
)
{
this
.
hideUI
();
this
.
showWaitingLetters
();
let
api
=
`/api/courseware/v1/
${
courseId
}
/list`
;
if
(
linkFlag
===
true
)
{
api
=
`/api/courseware/v1/
${
courseId
}
/eq/level/list`
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
api
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
this
.
courses
=
data
.
rows
;
this
.
courseIndex
=
data
.
index
||
0
;
this
.
courseItem
=
data
.
rows
[
this
.
courseIndex
];
}
if
(
this
.
courses
&&
this
.
courses
.
length
>
1
&&
this
.
courseIndex
<=
this
.
courses
.
length
-
1
)
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
}
if
(
this
.
courseIndex
>
0
)
{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
}
this
.
reWriteAir
();
this
.
loadPageBundle
();
});
},
loadLocalBundle
(
address
,
port
)
{
this
.
callNetworkApiGetLocal
(
`http://
${
address
}
:
${
port
}
`
,
'
/dist/config.json
'
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
let
sceneName
=
''
;
let
version
=
''
;
let
bondleUrl
=
''
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
sceneName
=
data
.
ios
.
sceneName
;
version
=
data
.
ios
.
version
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/ios/
${
sceneName
}
/`
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
sceneName
=
data
.
android
.
sceneName
;
version
=
data
.
android
.
version
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/android/
${
sceneName
}
/`
;
}
else
{
sceneName
=
data
.
android
.
sceneName
;
version
=
""
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/web_desktop/`
;
}
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
});
},
loadPageBundle
()
{
let
sceneName
,
version
,
bondleUrl
=
""
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
sceneName
=
this
.
courseItem
.
conf
.
ios
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
ios
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
ios
.
bondleUrl
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
sceneName
=
this
.
courseItem
.
conf
.
android
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
android
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
android
.
bondleUrl
;
}
else
{
sceneName
=
this
.
courseItem
.
conf
.
web_desktop
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
web_desktop
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
web_desktop
.
bondleUrl
;
}
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
},
loadBundle
(
sceneName
,
version
,
bondleUrl
)
{
this
.
currentBundleInfo
=
{
sceneName
,
version
,
bondleUrl
};
this
.
showMask
();
this
.
showWaitingLetters
();
cc
.
assetManager
.
loadBundle
(
bondleUrl
,
{
version
:
version
},
async
(
err
,
bundle
)
=>
{
if
(
err
)
{
return
this
.
asyncDelayLog
(
err
);
}
bundle
.
loadScene
(
sceneName
,
null
,
null
,
(
err
,
scene
)
=>
{
if
(
err
)
{
this
.
asyncDelayLog
(
'
err:
'
,
err
);
}
cc
.
audioEngine
.
stopAll
();
cc
.
director
.
runScene
(
scene
,
null
,
()
=>
{
console
.
log
(
'
sceneName =
'
+
sceneName
);
const
Canvas
=
cc
.
find
(
'
Canvas
'
);
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
cc
.
find
(
'
middleLayer/ExitBtn
'
).
active
=
true
;
this
.
hideWaitingLetters
();
this
.
hideMask
();
Canvas
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
middleLayer
.
scale
=
Canvas
.
width
/
middleLayer
.
width
;
// this.showLog('middleLayer.scale = ' + middleLayer.scale);
});
});
});
},
reloadBundle
()
{
const
{
sceneName
,
version
,
bondleUrl
}
=
this
.
currentBundleInfo
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
},
showMask
()
{
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
mask
.
active
=
true
;
cc
.
tween
(
mask
)
.
set
({
opacity
:
0
})
.
to
(
0.5
,
{
opacity
:
0
})
.
start
();
},
hideMask
()
{
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
mask
.
stopAllActions
();
cc
.
tween
(
mask
)
.
set
({
opacity
:
0
})
.
to
(
0.5
,
{
opacity
:
0
})
.
call
(()
=>
{
mask
.
active
=
false
;
})
.
start
();
},
reWriteAir
()
{
window
.
courseware
.
getData
=
(
callback
)
=>
{
let
data
=
null
;
if
(
this
.
courseItem
.
data
)
{
data
=
JSON
.
parse
(
this
.
courseItem
.
data
);
}
this
.
log
(
"
===成功调用getData===
"
+
this
.
courseItem
.
data
);
callback
&&
callback
(
data
);
}
window
.
courseware
.
nextPage
=
()
=>
{
this
.
goNextPage
();
}
window
.
courseware
.
beforePage
=
()
=>
{
this
.
goPrePage
();
}
window
.
courseware
.
sendAnswer
=
(
answerObj
)
=>
{
this
.
log
(
"
===成功调用sendAnswer===
"
+
JSON
.
stringify
(
answerObj
));
this
.
callNetworkApiPost
(
`http://staging-teach.ireadabc.com`
,
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/saveanswer`
,
answerObj
,
(
data
)
=>
{
answerObj
.
callback
&&
answerObj
.
callback
(
JSON
.
stringify
(
data
.
row
));
});
}
window
.
courseware
.
getAnswer
=
(
queryObj
,
callback
)
=>
{
this
.
log
(
"
===成功调用getAnswer===
"
+
JSON
.
stringify
(
queryObj
));
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/getanswer`
,
queryObj
,
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
callback
&&
callback
(
JSON
.
stringify
(
data
.
rows
));
});
}
},
callNativeFunction
(
param
)
{
const
paramStr
=
JSON
.
stringify
(
param
);
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
return
jsb
.
reflection
.
callStaticMethod
(
'
CocosMng
'
,
'
cocosWithNativeProtocol:
'
,
paramStr
);
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
return
jsb
.
reflection
.
callStaticMethod
(
'
com/iplayabc/cocos/AppActivity
'
,
'
cocosWithNativeProtocol
'
,
'
(Ljava/lang/String;)Ljava/lang/String;
'
,
paramStr
);
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_WINDOWS
)
{
console
.
log
(
'
汪汪汪
'
)
}
else
{
console
.
error
(
'
非源生环境
'
);
}
},
showWaitingLetters
()
{
if
(
this
.
isShowWaiting
)
{
return
;
}
this
.
isShowWaiting
=
true
;
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
layout
.
removeAllChildren
();
const
canvas
=
cc
.
find
(
"
Canvas
"
);
const
bg
=
layout
.
addComponent
(
cc
.
Graphics
);
bg
.
fillRect
(
-
canvas
.
width
/
2
,
-
canvas
.
height
/
2
,
canvas
.
width
,
canvas
.
height
);
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
laodingLayer
.
active
=
true
;
const
loading
=
cc
.
find
(
'
middleLayer/loadingLayer/loading
'
);
const
anim
=
loading
.
getComponent
(
cc
.
Animation
)
anim
.
play
(
'
loading
'
)
const
script
=
cc
.
find
(
'
middleLayer/loadingLayer/progress
'
).
getComponent
(
'
progressScript
'
);
script
.
setProgress
(
0
);
const
id
=
setInterval
(()
=>
{
console
.
log
(
'
changeObj.value:
'
,
changeObj
.
value
);
script
.
setProgress
(
changeObj
.
value
);
},
1
);
const
changeObj
=
{
value
:
0
};
cc
.
tween
(
changeObj
)
.
to
(
5
,
{
value
:
0.9
})
.
call
(()
=>
{
clearInterval
(
id
);
})
.
start
();
// const colorList = this.getRainbowColorList();
// const layout = cc.find('middleLayer/layout');
// layout.removeAllChildren();
// layout.active = true;
// const str = 'Now Loading...';
// str.split('').forEach((word, idx) => {
// const node = new cc.Node();
// const label = node.addComponent(cc.Label);
// label.string = word;
// node.parent = layout;
// node.color = colorList[idx];
// cc.tween(node)
// .delay(idx / 4)
// .by(0.3, { y: 50 }, { easing: 'sineOut' })
// .by(0.3, { y: -50 }, { easing: 'sineIn' })
// .delay((str.length - idx) / 4)
// .union()
// .repeatForever()
// .start();
// });
// const totalWidth = layout.children.reduce((width, node, idx) => {
// return width + node.width;
// }, 0);
// layout.width = totalWidth;
},
hideWaitingLetters
()
{
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
layout
.
active
=
false
;
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
laodingLayer
.
active
=
false
;
},
showLog
(
str
)
{
if
(
!
this
.
logList
)
{
this
.
logList
=
[];
}
this
.
logList
.
push
(
str
);
console
.
log
(
str
);
if
(
this
.
logList
.
length
==
1
)
{
this
.
showOneLog
();
}
},
showDebugUI
()
{
cc
.
find
(
'
middleLayer/ConsoleNode/BtnOpen
'
).
active
=
true
;
},
showOneLog
()
{
const
str
=
this
.
logList
[
0
];
if
(
str
===
undefined
)
{
return
;
}
const
node
=
new
cc
.
Node
();
node
.
anchorX
=
0.5
;
const
label
=
node
.
addComponent
(
cc
.
RichText
);
label
.
string
=
`<outline color=black width=3>
${
str
}
</outline>`
;
label
.
maxWidth
=
this
.
node
.
width
/
2
;
node
.
x
=
this
.
node
.
width
/
4
;
node
.
y
=
-
this
.
node
.
height
/
2
;
node
.
parent
=
this
.
node
;
cc
.
tween
(
node
)
.
to
(
5
,
{
y
:
this
.
node
.
height
})
.
removeSelf
()
.
start
();
setTimeout
(()
=>
{
this
.
logList
.
shift
();
this
.
showOneLog
();
},
1000
);
},
exit
()
{
cc
.
game
.
removePersistRootNode
(
this
.
node
);
cc
.
director
.
loadScene
(
"
emptyScene
"
,
()
=>
{
this
.
callNativeFunction
({
name
:
'
exit
'
,
value
:
''
});
});
},
getRainbowColorList
()
{
return
[
cc
.
color
(
255
,
255
,
0
),
cc
.
color
(
128
,
255
,
0
),
cc
.
color
(
0
,
255
,
0
),
cc
.
color
(
0
,
0
,
0
),
cc
.
color
(
0
,
255
,
128
),
cc
.
color
(
0
,
255
,
255
),
cc
.
color
(
0
,
128
,
255
),
cc
.
color
(
0
,
0
,
255
),
cc
.
color
(
128
,
0
,
255
),
cc
.
color
(
255
,
0
,
255
),
cc
.
color
(
255
,
0
,
128
),
cc
.
color
(
255
,
0
,
0
),
cc
.
color
(
255
,
128
,
0
),
cc
.
color
(
255
,
255
,
0
),
];
}
extends
:
cc
.
Component
,
properties
:
{},
callNetworkApiPost
(
baseUrl
,
uri
,
data
,
callBack
)
{
this
.
getBaseUrl
((
baseUrl
)
=>
{
const
xhr
=
new
XMLHttpRequest
();
const
url
=
`
${
baseUrl
}${
uri
}
`
;
xhr
.
open
(
"
POST
"
,
url
,
true
);
xhr
.
setRequestHeader
(
"
content-type
"
,
"
application/json
"
);
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
)
{
callBack
(
JSON
.
parse
(
xhr
.
responseText
));
}
};
xhr
.
send
(
JSON
.
stringify
(
data
));
});
},
callNetworkApiGet
(
baseUrl
,
uri
,
data
,
callBack
)
{
this
.
getBaseUrl
((
baseUrl
)
=>
{
let
queryStr
=
"
?
"
;
const
params
=
[];
for
(
const
key
in
data
)
{
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
}
}
queryStr
+=
params
.
join
(
"
&
"
);
const
xhr
=
new
XMLHttpRequest
();
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
xhr
.
status
>=
200
&&
xhr
.
status
<
400
)
{
callBack
(
xhr
.
responseText
);
}
};
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
"
url =
"
+
url
);
xhr
.
open
(
"
GET
"
,
url
,
true
);
xhr
.
send
();
});
},
callNetworkApiGetLocal
(
baseUrl
,
uri
,
data
,
callBack
)
{
let
queryStr
=
"
?
"
;
const
params
=
[];
for
(
const
key
in
data
)
{
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
}
}
queryStr
+=
params
.
join
(
"
&
"
);
const
xhr
=
new
XMLHttpRequest
();
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
xhr
.
status
>=
200
&&
xhr
.
status
<
400
)
{
callBack
(
xhr
.
responseText
);
}
};
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
"
url =
"
+
url
);
xhr
.
open
(
"
GET
"
,
url
,
true
);
xhr
.
send
();
},
// 需要预加载的数量
preloadCount
:
null
,
// 统计已加载的数量
loadedCount
:
null
,
// 统一释放异步资源的方法
onLoad
()
{
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
initAir
(
this
);
// this.preloadAll();
},
getBaseUrl
(
callback
)
{
if
(
window
.
air
.
engineInfo
)
{
if
(
window
.
air
.
engineInfo
.
isDev
==
1
)
{
callback
(
"
https://staging-teach.ireadabc.com
"
);
}
else
{
callback
(
"
https://iteachabc.com
"
);
}
}
else
{
window
.
courseware
.
getEngineInfo
(()
=>
{
if
(
window
.
air
.
engineInfo
.
isDev
==
1
)
{
callback
(
"
https://staging-teach.ireadabc.com
"
);
}
else
{
callback
(
"
https://iteachabc.com
"
);
}
});
}
},
start
()
{
this
.
node
.
zIndex
=
9999
;
cc
.
game
.
addPersistRootNode
(
this
.
node
);
this
.
initListener
();
const
addressText
=
cc
.
find
(
"
middleLayer/ui/address
"
);
const
str
=
cc
.
sys
.
localStorage
.
getItem
(
"
ip
"
);
console
.
log
(
"
str =
"
+
str
);
if
(
str
)
{
addressText
.
getComponent
(
cc
.
EditBox
).
string
=
str
;
}
const
nameText
=
cc
.
find
(
"
middleLayer/ui/bundleName
"
);
const
bundleName
=
cc
.
sys
.
localStorage
.
getItem
(
"
bundleName
"
);
if
(
bundleName
)
{
nameText
.
getComponent
(
cc
.
EditBox
).
string
=
bundleName
;
}
const
courseIdNode
=
cc
.
find
(
"
middleLayer/ui/courseId
"
);
const
courseId
=
cc
.
sys
.
localStorage
.
getItem
(
"
courseId
"
);
if
(
courseId
)
{
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
=
courseId
;
}
const
uiNode
=
cc
.
find
(
"
middleLayer/ui
"
);
uiNode
.
parent
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
const
scale
=
Math
.
min
(
uiNode
.
parent
.
width
/
uiNode
.
width
,
uiNode
.
parent
.
height
/
uiNode
.
height
);
console
.
log
(
'
scale =
'
+
scale
);
uiNode
.
scale
=
scale
;
global
.
middleLayer
=
cc
.
find
(
"
middleLayer
"
).
getComponent
(
"
middleLayer
"
);
middleLayer
.
log
(
"
middleLayer.log('像这样在这里打log')
"
);
},
preloadAll
()
{
if
(
window
.
preloadBundleAndSourcesFlag
)
{
// 只加载一次就行了
return
;
}
window
.
preloadBundleAndSourcesFlag
=
true
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
"
middleLayer/ui/loadingProgress
"
).
active
=
true
;
let
platform
=
"
web_desktop
"
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
platform
=
"
ios
"
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
platform
=
"
android
"
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allbundles`
,
{
orgid
:
483
,
platform
},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data
.
rows
.
length
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allresources`
,
{
orgid
:
483
},
(
datastr1
)
=>
{
const
data1
=
JSON
.
parse
(
datastr1
);
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
console
.
log
(
"
data.rows =
"
+
JSON
.
stringify
(
data
.
rows
));
this
.
batchPreloadScene
(
data
.
rows
);
this
.
preloadSource
(
data1
.
rows
);
}
);
}
);
},
preloadSourceImman
()
{
// 测试用
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
"
middleLayer/ui/loadingProgress
"
).
active
=
true
;
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/courseware/v1/getresources`
,
{
courseid
:
20894
},
(
datastr1
)
=>
{
const
data1
=
JSON
.
parse
(
datastr1
);
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
this
.
log
(
"
data1.rows =
"
+
JSON
.
stringify
(
data1
.
rows
));
this
.
preloadSource
(
data1
.
rows
);
}
);
},
batchPreloadScene
(
scenes
=
[])
{
const
expects
=
[
// 'op_03_2',
// 'OP10_online',
];
const
_this
=
this
;
let
i
=
0
;
const
load
=
function
()
{
const
scene
=
scenes
[
i
];
if
(
expects
.
includes
(
scene
.
sceneName
))
{
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
return
;
}
cc
.
assetManager
.
loadBundle
(
scene
.
bondleUrl
,
{
version
:
scene
.
version
},
(
err
,
bundle
)
=>
{
console
.
log
(
`
${
scene
.
bondleUrl
}
---场景开始loadBundle----`
);
if
(
!
bundle
)
{
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
return
;
}
bundle
.
preloadScene
(
scene
.
sceneName
,
()
=>
{},
()
=>
{
console
.
log
(
`
${
scene
.
sceneName
}
场景预加载结束`
);
_this
.
loadedCount
++
;
_this
.
updateProcessBar
();
i
++
;
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
load
();
},
1
);
}
}
);
}
);
};
if
(
scenes
&&
scenes
.
length
>
0
)
{
load
();
}
},
preloadSource
(
array
)
{
const
rows
=
array
||
[];
const
batchLoad
=
()
=>
{
let
tempArr
=
rows
.
splice
(
0
,
10
);
let
len
=
tempArr
.
length
;
for
(
let
i
=
0
;
i
<
tempArr
.
length
;
i
++
)
{
cc
.
assetManager
.
loadRemote
(
tempArr
[
i
],
(
err
,
texture
)
=>
{
if
(
err
)
{
console
.
log
(
err
);
}
this
.
loadedCount
++
;
this
.
updateProcessBar
();
if
(
i
===
len
-
1
)
{
batchLoad
();
}
});
}
};
batchLoad
();
},
updateProcessBar
()
{
const
label
=
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
)
.
getComponent
(
cc
.
Label
);
const
loadingProgress
=
cc
.
find
(
"
middleLayer/ui/loadingProgress
"
);
label
.
string
=
`正在加载:
${
this
.
loadedCount
}
/
${
this
.
preloadCount
}
`
;
if
(
this
.
loadedCount
>
this
.
preloadCount
*
0.99
)
{
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
false
;
loadingProgress
.
active
=
false
;
this
.
showLog
(
"
资源全部加载完成
"
);
}
loadingProgress
.
getComponent
(
cc
.
ProgressBar
).
progress
=
this
.
loadedCount
/
this
.
preloadCount
;
},
asyncDelayLog
(
str
)
{
console
.
log
(
str
);
return
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(()
=>
{
resolve
();
},
1
);
});
},
initListener
()
{
const
exitBtn
=
cc
.
find
(
"
middleLayer/ExitBtn
"
);
exitBtn
.
on
(
"
click
"
,
()
=>
{
cc
.
find
(
"
middleLayer/BtnRight
"
).
active
=
false
;
cc
.
find
(
"
middleLayer/BtnLeft
"
).
active
=
false
;
cc
.
tween
(
exitBtn
)
.
to
(
0.1
,
{
scaleX
:
0.4
,
scaleY
:
0.6
})
.
to
(
0.1
,
{
scaleX
:
0.6
,
scaleY
:
0.4
})
.
to
(
0.1
,
{
scaleX
:
0.5
,
scaleY
:
0.5
})
.
call
(()
=>
{
exitBtn
.
active
=
false
;
cc
.
game
.
removePersistRootNode
(
this
.
node
);
// cc.director.getScene().destroy();
cc
.
audioEngine
.
stopAll
();
window
.
courseware
.
freeAllOcMethod
();
cc
.
director
.
loadScene
(
"
debug_shell
"
,
null
,
null
,
(
err
,
scene
)
=>
{});
})
.
start
();
});
cc
.
find
(
"
middleLayer/BtnRight
"
).
on
(
"
click
"
,
()
=>
{
this
.
goNextPage
();
});
cc
.
find
(
"
middleLayer/BtnLeft
"
).
on
(
"
click
"
,
()
=>
{
this
.
goPrePage
();
});
cc
.
find
(
"
middleLayer/ui/BtnOpenOsmo
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
openOsmo
();
});
cc
.
find
(
"
middleLayer/ui/BtnCloseOsmo
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
closeOsmo
();
});
cc
.
find
(
"
middleLayer/ui/BtnOpenRecord
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
startRecord
(
1
);
});
cc
.
find
(
"
middleLayer/ui/BtnCloseRecord
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
stopRecord
((
res
)
=>
{
this
.
log
(
"
--------录音返回结果 stopRecord ------------
"
);
this
.
log
(
JSON
.
stringify
(
res
));
this
.
log
(
"
------------------------------
"
);
});
});
cc
.
find
(
"
middleLayer/ui/BtnOpenTest
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
startTest
(
""
);
});
cc
.
find
(
"
middleLayer/ui/BtnCloseTest
"
).
on
(
"
click
"
,
()
=>
{
window
.
courseware
.
stopTest
((
res
)
=>
{
this
.
log
(
"
--------录音评测返回结果 stopTest ---------
"
);
this
.
log
(
JSON
.
stringify
(
res
));
this
.
log
(
"
------------------------------
"
);
});
});
const
BtnStartLocal
=
cc
.
find
(
"
middleLayer/ui/BtnStartLocal
"
);
BtnStartLocal
.
on
(
"
click
"
,
()
=>
{
const
addressText
=
cc
.
find
(
"
middleLayer/ui/address
"
);
const
str
=
addressText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
"
ip
"
,
str
);
const
address
=
str
.
split
(
"
:
"
)[
0
];
const
port
=
str
.
split
(
"
:
"
)[
0
]
|
8081
;
this
.
localMode
=
true
;
this
.
loadLocalBundle
(
address
,
port
);
this
.
showWaitingLetters
();
this
.
hideUI
();
this
.
showDebugUI
();
});
const
BtnStartOnline
=
cc
.
find
(
"
middleLayer/ui/BtnStartOnline
"
);
BtnStartOnline
.
on
(
"
click
"
,
()
=>
{
const
nameText
=
cc
.
find
(
"
middleLayer/ui/bundleName
"
);
const
bundleName
=
nameText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
"
bundleName
"
,
bundleName
);
this
.
loadOnlineBundle
(
bundleName
);
this
.
showDebugUI
();
});
const
BtnStartCourseWare
=
cc
.
find
(
"
middleLayer/ui/BtnStartCourseWare
"
);
BtnStartCourseWare
.
on
(
"
click
"
,
()
=>
{
const
courseIdNode
=
cc
.
find
(
"
middleLayer/ui/courseId
"
);
const
courseId
=
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
"
courseId
"
,
courseId
);
this
.
loadOnlineCourseWare
(
courseId
);
this
.
showDebugUI
();
});
const
BtnLoad
=
cc
.
find
(
"
middleLayer/ui/BtnLoad
"
);
BtnLoad
.
on
(
"
click
"
,
()
=>
{
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
"
middleLayer/ui/loadingProgress
"
).
active
=
true
;
// this.preloadAll();
this
.
preloadSourceImman
();
});
const
btnClose
=
cc
.
find
(
"
middleLayer/ConsoleNode/BtnClose
"
);
const
btnOpen
=
cc
.
find
(
"
middleLayer/ConsoleNode/BtnOpen
"
);
const
consoleNode
=
cc
.
find
(
"
middleLayer/ConsoleNode/Console
"
);
const
consoleBg
=
cc
.
find
(
"
middleLayer/ConsoleNode/bg
"
);
btnOpen
.
on
(
"
click
"
,
()
=>
{
btnClose
.
active
=
true
;
btnOpen
.
active
=
false
;
consoleNode
.
active
=
true
;
consoleBg
.
active
=
true
;
});
btnClose
.
on
(
"
click
"
,
()
=>
{
btnClose
.
active
=
false
;
btnOpen
.
active
=
true
;
consoleNode
.
active
=
false
;
consoleBg
.
active
=
false
;
});
},
goPrePage
()
{
this
.
goTarIndexPage
(
this
.
courseIndex
-
1
);
},
goNextPage
()
{
this
.
goTarIndexPage
(
this
.
courseIndex
+
1
);
},
goTarIndexPage
(
index
)
{
if
(
!
this
.
courses
||
index
==
this
.
courseIndex
||
index
<
0
||
index
>
this
.
courses
.
length
-
1
)
{
return
;
}
window
.
courseware
.
freeAllOcMethod
();
this
.
courseIndex
=
index
;
this
.
courseItem
=
this
.
courses
[
this
.
courseIndex
];
if
(
this
.
courseIndex
==
0
)
{
cc
.
find
(
"
middleLayer/BtnLeft
"
).
active
=
false
;
}
else
{
cc
.
find
(
"
middleLayer/BtnLeft
"
).
active
=
false
;
}
if
(
this
.
courseIndex
==
this
.
courses
.
length
-
1
)
{
cc
.
find
(
"
middleLayer/BtnRight
"
).
active
=
false
;
}
else
{
cc
.
find
(
"
middleLayer/BtnRight
"
).
active
=
true
;
}
this
.
loadPageBundle
();
},
log
(
str
)
{
const
logStr
=
`
${
new
Date
().
toLocaleString
()}
:
${
str
}
`
;
console
.
log
(
logStr
);
const
content
=
cc
.
instantiate
(
cc
.
find
(
"
middleLayer/ConsoleNode/content
"
));
content
.
active
=
true
;
const
label
=
content
.
getChildByName
(
"
label
"
);
label
.
getComponent
(
cc
.
Label
).
string
=
logStr
;
const
consoleContent
=
cc
.
find
(
"
middleLayer/ConsoleNode/Console/content
"
);
consoleContent
.
addChild
(
content
);
consoleContent
.
getComponent
(
cc
.
Layout
).
updateLayout
();
},
hideUI
()
{
cc
.
find
(
"
middleLayer/ui
"
).
active
=
false
;
},
loadOnlineBundle
(
bundleName
)
{
this
.
hideUI
();
this
.
showWaitingLetters
();
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/template/v1/
${
bundleName
}
`
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
let
configData
=
null
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
configData
=
data
.
data
.
conf
.
ios
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
configData
=
data
.
data
.
conf
.
android
;
}
else
{
configData
=
data
.
data
.
conf
.
web_desktop
;
}
const
sceneName
=
configData
.
sceneName
;
const
version
=
configData
.
version
;
const
bondleUrl
=
configData
.
bondleUrl
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
}
);
},
courses
:
null
,
courseIndex
:
0
,
courseItem
:
null
,
loadOnlineCourseWare
(
courseId
,
linkFlag
)
{
this
.
hideUI
();
this
.
showWaitingLetters
();
let
api
=
`/api/courseware/v1/
${
courseId
}
/list`
;
if
(
linkFlag
===
true
)
{
api
=
`/api/courseware/v1/
${
courseId
}
/eq/level/list`
;
}
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
api
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
this
.
courses
=
data
.
rows
;
this
.
courseIndex
=
data
.
index
||
0
;
this
.
courseItem
=
data
.
rows
[
this
.
courseIndex
];
}
if
(
this
.
courses
&&
this
.
courses
.
length
>
1
&&
this
.
courseIndex
<=
this
.
courses
.
length
-
1
)
{
cc
.
find
(
"
middleLayer/BtnRight
"
).
active
=
true
;
}
if
(
this
.
courseIndex
>
0
)
{
cc
.
find
(
"
middleLayer/BtnLeft
"
).
active
=
false
;
}
this
.
reWriteAir
();
this
.
loadPageBundle
();
}
);
},
loadLocalBundle
(
address
,
port
)
{
this
.
callNetworkApiGetLocal
(
`http://
${
address
}
:
${
port
}
`
,
"
/dist/config.json
"
,
{},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
let
sceneName
=
""
;
let
version
=
""
;
let
bondleUrl
=
""
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
sceneName
=
data
.
ios
.
sceneName
;
version
=
data
.
ios
.
version
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/ios/
${
sceneName
}
/`
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
sceneName
=
data
.
android
.
sceneName
;
version
=
data
.
android
.
version
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/android/
${
sceneName
}
/`
;
}
else
{
sceneName
=
data
.
android
.
sceneName
;
version
=
""
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/web_desktop/`
;
}
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
}
);
},
loadPageBundle
()
{
let
sceneName
,
version
,
bondleUrl
=
""
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
sceneName
=
this
.
courseItem
.
conf
.
ios
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
ios
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
ios
.
bondleUrl
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
sceneName
=
this
.
courseItem
.
conf
.
android
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
android
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
android
.
bondleUrl
;
}
else
{
sceneName
=
this
.
courseItem
.
conf
.
web_desktop
.
sceneName
;
version
=
this
.
courseItem
.
conf
.
web_desktop
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
web_desktop
.
bondleUrl
;
}
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
},
loadBundle
(
sceneName
,
version
,
bondleUrl
)
{
this
.
currentBundleInfo
=
{
sceneName
,
version
,
bondleUrl
};
this
.
showMask
();
this
.
showWaitingLetters
();
cc
.
assetManager
.
loadBundle
(
bondleUrl
,
{
version
:
version
},
async
(
err
,
bundle
)
=>
{
if
(
err
)
{
return
this
.
asyncDelayLog
(
err
);
}
bundle
.
loadScene
(
sceneName
,
null
,
null
,
(
err
,
scene
)
=>
{
if
(
err
)
{
this
.
asyncDelayLog
(
"
err:
"
,
err
);
}
cc
.
audioEngine
.
stopAll
();
cc
.
director
.
runScene
(
scene
,
null
,
()
=>
{
console
.
log
(
"
sceneName =
"
+
sceneName
);
const
Canvas
=
cc
.
find
(
"
Canvas
"
);
const
middleLayer
=
cc
.
find
(
"
middleLayer
"
);
cc
.
find
(
"
middleLayer/ExitBtn
"
).
active
=
true
;
this
.
hideWaitingLetters
();
this
.
hideMask
();
Canvas
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
middleLayer
.
scale
=
Canvas
.
width
/
middleLayer
.
width
;
// this.showLog('middleLayer.scale = ' + middleLayer.scale);
});
});
}
);
},
reloadBundle
()
{
const
{
sceneName
,
version
,
bondleUrl
}
=
this
.
currentBundleInfo
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
},
showMask
()
{
const
mask
=
cc
.
find
(
"
middleLayer/mask
"
);
mask
.
active
=
true
;
cc
.
tween
(
mask
).
set
({
opacity
:
0
}).
to
(
0.5
,
{
opacity
:
0
}).
start
();
},
hideMask
()
{
const
mask
=
cc
.
find
(
"
middleLayer/mask
"
);
mask
.
stopAllActions
();
cc
.
tween
(
mask
)
.
set
({
opacity
:
0
})
.
to
(
0.5
,
{
opacity
:
0
})
.
call
(()
=>
{
mask
.
active
=
false
;
})
.
start
();
},
reWriteAir
()
{
window
.
courseware
.
getData
=
(
callback
)
=>
{
let
data
=
null
;
if
(
this
.
courseItem
.
data
)
{
data
=
JSON
.
parse
(
this
.
courseItem
.
data
);
}
this
.
log
(
"
===成功调用getData===
"
+
this
.
courseItem
.
data
);
callback
&&
callback
(
data
);
};
window
.
courseware
.
nextPage
=
()
=>
{
this
.
goNextPage
();
};
window
.
courseware
.
beforePage
=
()
=>
{
this
.
goPrePage
();
};
window
.
courseware
.
sendAnswer
=
(
answerObj
)
=>
{
this
.
log
(
"
===成功调用sendAnswer===
"
+
JSON
.
stringify
(
answerObj
));
this
.
callNetworkApiPost
(
`http://staging-teach.ireadabc.com`
,
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/saveanswer`
,
answerObj
,
(
data
)
=>
{
answerObj
.
callback
&&
answerObj
.
callback
(
JSON
.
stringify
(
data
.
row
));
}
);
};
window
.
courseware
.
getAnswer
=
(
queryObj
,
callback
)
=>
{
this
.
log
(
"
===成功调用getAnswer===
"
+
JSON
.
stringify
(
queryObj
));
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/getanswer`
,
queryObj
,
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
callback
&&
callback
(
JSON
.
stringify
(
data
.
rows
));
}
);
};
},
callNativeFunction
(
param
)
{
const
paramStr
=
JSON
.
stringify
(
param
);
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
return
jsb
.
reflection
.
callStaticMethod
(
"
CocosMng
"
,
"
cocosWithNativeProtocol:
"
,
paramStr
);
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
return
jsb
.
reflection
.
callStaticMethod
(
"
com/iplayabc/cocos/AppActivity
"
,
"
cocosWithNativeProtocol
"
,
"
(Ljava/lang/String;)Ljava/lang/String;
"
,
paramStr
);
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_WINDOWS
)
{
console
.
log
(
"
汪汪汪
"
);
}
else
{
console
.
error
(
"
非源生环境
"
);
}
},
showWaitingLetters
()
{
if
(
this
.
isShowWaiting
)
{
return
;
}
this
.
isShowWaiting
=
true
;
const
layout
=
cc
.
find
(
"
middleLayer/layout
"
);
layout
.
removeAllChildren
();
const
canvas
=
cc
.
find
(
"
Canvas
"
);
const
bg
=
layout
.
addComponent
(
cc
.
Graphics
);
bg
.
fillRect
(
-
canvas
.
width
/
2
,
-
canvas
.
height
/
2
,
canvas
.
width
,
canvas
.
height
);
const
laodingLayer
=
cc
.
find
(
"
middleLayer/loadingLayer
"
);
laodingLayer
.
active
=
true
;
const
loading
=
cc
.
find
(
"
middleLayer/loadingLayer/loading
"
);
const
anim
=
loading
.
getComponent
(
cc
.
Animation
);
anim
.
play
(
"
loading
"
);
const
script
=
cc
.
find
(
"
middleLayer/loadingLayer/progress
"
)
.
getComponent
(
"
progressScript
"
);
script
.
setProgress
(
0
);
const
id
=
setInterval
(()
=>
{
console
.
log
(
"
changeObj.value:
"
,
changeObj
.
value
);
script
.
setProgress
(
changeObj
.
value
);
},
1
);
const
changeObj
=
{
value
:
0
};
cc
.
tween
(
changeObj
)
.
to
(
5
,
{
value
:
0.9
})
.
call
(()
=>
{
clearInterval
(
id
);
})
.
start
();
// const colorList = this.getRainbowColorList();
// const layout = cc.find('middleLayer/layout');
// layout.removeAllChildren();
// layout.active = true;
// const str = 'Now Loading...';
// str.split('').forEach((word, idx) => {
// const node = new cc.Node();
// const label = node.addComponent(cc.Label);
// label.string = word;
// node.parent = layout;
// node.color = colorList[idx];
// cc.tween(node)
// .delay(idx / 4)
// .by(0.3, { y: 50 }, { easing: 'sineOut' })
// .by(0.3, { y: -50 }, { easing: 'sineIn' })
// .delay((str.length - idx) / 4)
// .union()
// .repeatForever()
// .start();
// });
// const totalWidth = layout.children.reduce((width, node, idx) => {
// return width + node.width;
// }, 0);
// layout.width = totalWidth;
},
hideWaitingLetters
()
{
const
layout
=
cc
.
find
(
"
middleLayer/layout
"
);
layout
.
active
=
false
;
const
laodingLayer
=
cc
.
find
(
"
middleLayer/loadingLayer
"
);
laodingLayer
.
active
=
false
;
},
showLog
(
str
)
{
if
(
!
this
.
logList
)
{
this
.
logList
=
[];
}
this
.
logList
.
push
(
str
);
console
.
log
(
str
);
if
(
this
.
logList
.
length
==
1
)
{
this
.
showOneLog
();
}
},
showDebugUI
()
{
cc
.
find
(
"
middleLayer/ConsoleNode/BtnOpen
"
).
active
=
true
;
},
showOneLog
()
{
const
str
=
this
.
logList
[
0
];
if
(
str
===
undefined
)
{
return
;
}
const
node
=
new
cc
.
Node
();
node
.
anchorX
=
0.5
;
const
label
=
node
.
addComponent
(
cc
.
RichText
);
label
.
string
=
`<outline color=black width=3>
${
str
}
</outline>`
;
label
.
maxWidth
=
this
.
node
.
width
/
2
;
node
.
x
=
this
.
node
.
width
/
4
;
node
.
y
=
-
this
.
node
.
height
/
2
;
node
.
parent
=
this
.
node
;
cc
.
tween
(
node
).
to
(
5
,
{
y
:
this
.
node
.
height
}).
removeSelf
().
start
();
setTimeout
(()
=>
{
this
.
logList
.
shift
();
this
.
showOneLog
();
},
1000
);
},
exit
()
{
cc
.
game
.
removePersistRootNode
(
this
.
node
);
cc
.
director
.
loadScene
(
"
emptyScene
"
,
()
=>
{
this
.
callNativeFunction
({
name
:
"
exit
"
,
value
:
""
});
});
},
getRainbowColorList
()
{
return
[
cc
.
color
(
255
,
255
,
0
),
cc
.
color
(
128
,
255
,
0
),
cc
.
color
(
0
,
255
,
0
),
cc
.
color
(
0
,
0
,
0
),
cc
.
color
(
0
,
255
,
128
),
cc
.
color
(
0
,
255
,
255
),
cc
.
color
(
0
,
128
,
255
),
cc
.
color
(
0
,
0
,
255
),
cc
.
color
(
128
,
0
,
255
),
cc
.
color
(
255
,
0
,
255
),
cc
.
color
(
255
,
0
,
128
),
cc
.
color
(
255
,
0
,
0
),
cc
.
color
(
255
,
128
,
0
),
cc
.
color
(
255
,
255
,
0
),
];
},
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment