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
d75d942f
Commit
d75d942f
authored
May 16, 2022
by
范雪寒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor: 网络部分抽到基类里
parent
5c583207
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
1032 additions
and
2049 deletions
+1032
-2049
middleLayer.ts
assets/middleLayer_for_debug/script/middleLayer.ts
+959
-1017
middleLayer2.js
assets/middleLayer_for_debug/script/middleLayer2.js
+0
-1022
middleLayer2.js.meta
assets/middleLayer_for_debug/script/middleLayer2.js.meta
+0
-9
middleLayerBase.ts
assets/middleLayer_for_debug/script/middleLayerBase.ts
+72
-0
creator.d.ts
creator.d.ts
+1
-1
No files found.
assets/middleLayer_for_debug/script/middleLayer.ts
View file @
d75d942f
...
@@ -5,1021 +5,963 @@ const { ccclass, property } = cc._decorator;
...
@@ -5,1021 +5,963 @@ const { ccclass, property } = cc._decorator;
@
ccclass
@
ccclass
export
default
class
NewClass
extends
middleLayerBase
{
export
default
class
NewClass
extends
middleLayerBase
{
callNetworkApiPost
(
baseUrl
,
uri
,
data
,
callBack
)
{
callNetworkApiGetLocal
(
baseUrl
,
uri
,
data
,
callBack
)
{
this
.
getBaseUrl
((
baseUrl
)
=>
{
let
queryStr
=
'
?
'
;
const
xhr
=
new
XMLHttpRequest
();
const
params
=
[];
const
url
=
`
${
baseUrl
}${
uri
}
`
;
for
(
const
key
in
data
)
{
xhr
.
open
(
"
POST
"
,
url
,
true
);
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
xhr
.
setRequestHeader
(
'
content-type
'
,
'
application/json
'
);
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
xhr
.
onreadystatechange
=
()
=>
{
}
if
(
xhr
.
readyState
==
4
)
{
}
callBack
(
JSON
.
parse
(
xhr
.
responseText
));
queryStr
+=
params
.
join
(
"
&
"
);
}
const
xhr
=
new
XMLHttpRequest
();
}
xhr
.
onreadystatechange
=
()
=>
{
xhr
.
send
(
JSON
.
stringify
(
data
));
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
});
callBack
(
xhr
.
responseText
);
}
}
};
callNetworkApiGet
(
baseUrl
,
uri
,
data
,
callBack
)
{
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
this
.
getBaseUrl
((
baseUrl
)
=>
{
console
.
log
(
'
url =
'
+
url
);
let
queryStr
=
'
?
'
;
xhr
.
open
(
'
GET
'
,
url
,
true
);
const
params
=
[];
xhr
.
setRequestHeader
(
'
Access-Control-Request-Private-Network
'
,
'
true
'
);
for
(
const
key
in
data
)
{
xhr
.
send
();
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
}
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
}
// 需要预加载的数量
}
preloadCount
=
null
;
queryStr
+=
params
.
join
(
"
&
"
);
// 统计已加载的数量
const
xhr
=
new
XMLHttpRequest
();
loadedCount
=
null
;
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
role
;
callBack
(
xhr
.
responseText
);
}
// 统一释放异步资源的方法
};
onLoad
()
{
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
this
.
preloadCount
=
0
;
console
.
log
(
'
url =
'
+
url
);
this
.
loadedCount
=
0
;
xhr
.
open
(
'
GET
'
,
url
,
true
);
const
uiNode
=
cc
.
find
(
'
middleLayer/ui
'
);
xhr
.
send
();
uiNode
.
parent
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
});
const
scale
=
Math
.
min
(
}
uiNode
.
parent
.
width
/
uiNode
.
width
,
uiNode
.
parent
.
height
/
uiNode
.
height
,
callNetworkApiGetLocal
(
baseUrl
,
uri
,
data
,
callBack
)
{
)
let
queryStr
=
'
?
'
;
uiNode
.
scale
=
scale
;
const
params
=
[];
initAir
(
this
);
for
(
const
key
in
data
)
{
// this.preloadAll();
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
params
.
push
(
`
${
key
}
=
${
data
[
key
]}
`
);
this
.
role
=
'
student
'
;
}
}
}
queryStr
+=
params
.
join
(
"
&
"
);
start
()
{
const
xhr
=
new
XMLHttpRequest
();
this
.
node
.
zIndex
=
9999
;
xhr
.
onreadystatechange
=
()
=>
{
cc
.
game
.
addPersistRootNode
(
this
.
node
);
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
this
.
initListener
();
callBack
(
xhr
.
responseText
);
}
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
};
const
str
=
cc
.
sys
.
localStorage
.
getItem
(
'
ip
'
);
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
'
str =
'
+
str
);
console
.
log
(
'
url =
'
+
url
);
if
(
str
)
{
xhr
.
open
(
'
GET
'
,
url
,
true
);
addressText
.
getComponent
(
cc
.
EditBox
).
string
=
str
;
xhr
.
setRequestHeader
(
'
Access-Control-Request-Private-Network
'
,
'
true
'
);
}
xhr
.
send
();
}
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
const
bundleName
=
cc
.
sys
.
localStorage
.
getItem
(
'
bundleName
'
);
// 需要预加载的数量
if
(
bundleName
)
{
preloadCount
=
null
;
nameText
.
getComponent
(
cc
.
EditBox
).
string
=
bundleName
;
// 统计已加载的数量
}
loadedCount
=
null
;
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
role
;
const
courseId
=
cc
.
sys
.
localStorage
.
getItem
(
'
courseId
'
);
if
(
courseId
)
{
// 统一释放异步资源的方法
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
=
courseId
;
onLoad
()
{
}
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
global
.
middleLayer
=
cc
.
find
(
'
middleLayer
'
).
getComponent
(
'
middleLayer
'
);
const
uiNode
=
cc
.
find
(
'
middleLayer/ui
'
);
uiNode
.
parent
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
global
.
middleLayer
.
log
(
"
middleLayer.log('像这样在这里打log')
"
);
const
scale
=
Math
.
min
(
}
uiNode
.
parent
.
width
/
uiNode
.
width
,
uiNode
.
parent
.
height
/
uiNode
.
height
,
preloadAll
()
{
)
if
((
<
any
>
window
).
preloadBundleAndSourcesFlag
)
{
uiNode
.
scale
=
scale
;
// 只加载一次就行了
initAir
(
this
);
return
;
// this.preloadAll();
}
(
<
any
>
window
).
preloadBundleAndSourcesFlag
=
true
;
this
.
role
=
'
student
'
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
}
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
let
platform
=
"
web_desktop
"
;
getBaseUrl
(
callback
)
{
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
if
((
<
any
>
window
).
air
.
engineInfo
)
{
platform
=
"
ios
"
;
const
{
isDev
}
=
JSON
.
parse
((
<
any
>
window
).
air
.
engineInfo
);
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
if
(
isDev
==
1
)
{
platform
=
"
android
"
;
callback
(
'
https://staging-teach.ireadabc.com
'
);
}
}
else
{
this
.
callNetworkApiGet
(
`/api/syllabus/v1/allbundles`
,
{
orgid
:
483
,
platform
},
(
datastr
)
=>
{
callback
(
'
https://iteachabc.com
'
);
const
data
=
JSON
.
parse
(
datastr
);
}
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
}
else
{
this
.
preloadCount
+=
data
.
rows
.
length
;
(
<
any
>
window
).
courseware
.
getEngineInfo
(()
=>
{
}
const
{
isDev
}
=
JSON
.
parse
((
<
any
>
window
).
air
.
engineInfo
);
this
.
callNetworkApiGet
(
`/api/syllabus/v1/allresources`
,
{
orgid
:
483
},
(
datastr1
)
=>
{
if
(
isDev
==
1
)
{
const
data1
=
JSON
.
parse
(
datastr1
);
callback
(
'
https://staging-teach.ireadabc.com
'
);
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
}
else
{
this
.
preloadCount
+=
data1
.
rows
.
length
;
callback
(
'
https://iteachabc.com
'
);
}
}
console
.
log
(
'
data.rows =
'
+
JSON
.
stringify
(
data
.
rows
));
});
this
.
batchPreloadScene
(
data
.
rows
);
}
this
.
preloadSource
(
data1
.
rows
);
}
});
});
start
()
{
}
this
.
node
.
zIndex
=
9999
;
cc
.
game
.
addPersistRootNode
(
this
.
node
);
preloadSourceImman
()
{
this
.
initListener
();
// 测试用
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
const
str
=
cc
.
sys
.
localStorage
.
getItem
(
'
ip
'
);
this
.
callNetworkApiGet
(
`/api/courseware/v1/getresources`
,
{
courseid
:
20894
},
(
datastr1
)
=>
{
console
.
log
(
'
str =
'
+
str
);
const
data1
=
JSON
.
parse
(
datastr1
);
if
(
str
)
{
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
addressText
.
getComponent
(
cc
.
EditBox
).
string
=
str
;
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
}
this
.
log
(
'
data1.rows =
'
+
JSON
.
stringify
(
data1
.
rows
));
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
this
.
preloadSource
(
data1
.
rows
);
const
bundleName
=
cc
.
sys
.
localStorage
.
getItem
(
'
bundleName
'
);
});
if
(
bundleName
)
{
}
nameText
.
getComponent
(
cc
.
EditBox
).
string
=
bundleName
;
}
batchPreloadScene
(
scenes
=
[])
{
const
expects
=
[
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
// 'op_03_2',
const
courseId
=
cc
.
sys
.
localStorage
.
getItem
(
'
courseId
'
);
// 'OP10_online',
if
(
courseId
)
{
];
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
=
courseId
;
const
_this
=
this
;
}
let
i
=
0
;
const
load
=
function
()
{
global
.
middleLayer
=
cc
.
find
(
'
middleLayer
'
).
getComponent
(
'
middleLayer
'
);
const
scene
=
scenes
[
i
];
if
(
expects
.
includes
(
scene
.
sceneName
))
{
global
.
middleLayer
.
log
(
"
middleLayer.log('像这样在这里打log')
"
);
_this
.
loadedCount
++
;
}
_this
.
updateProcessBar
();
i
++
;
preloadAll
()
{
if
(
i
<
scenes
.
length
)
{
if
((
<
any
>
window
).
preloadBundleAndSourcesFlag
)
{
setTimeout
(()
=>
{
// 只加载一次就行了
load
();
return
;
},
1
);
}
}
(
<
any
>
window
).
preloadBundleAndSourcesFlag
=
true
;
return
;
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
}
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
cc
.
assetManager
.
loadBundle
(
scene
.
bondleUrl
,
{
version
:
scene
.
version
},
(
err
,
bundle
)
=>
{
let
platform
=
"
web_desktop
"
;
console
.
log
(
`
${
scene
.
bondleUrl
}
---场景开始loadBundle----`
);
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
if
(
!
bundle
)
{
platform
=
"
ios
"
;
_this
.
loadedCount
++
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
_this
.
updateProcessBar
();
platform
=
"
android
"
;
i
++
;
}
if
(
i
<
scenes
.
length
)
{
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allbundles`
,
{
orgid
:
483
,
platform
},
(
datastr
)
=>
{
setTimeout
(()
=>
{
const
data
=
JSON
.
parse
(
datastr
);
load
();
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
},
1
);
this
.
preloadCount
+=
data
.
rows
.
length
;
}
}
return
;
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allresources`
,
{
orgid
:
483
},
(
datastr1
)
=>
{
}
const
data1
=
JSON
.
parse
(
datastr1
);
bundle
.
preloadScene
(
scene
.
sceneName
,
()
=>
{
},
()
=>
{
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
console
.
log
(
`
${
scene
.
sceneName
}
场景预加载结束`
);
this
.
preloadCount
+=
data1
.
rows
.
length
;
_this
.
loadedCount
++
;
}
_this
.
updateProcessBar
();
console
.
log
(
'
data.rows =
'
+
JSON
.
stringify
(
data
.
rows
));
i
++
;
this
.
batchPreloadScene
(
data
.
rows
);
if
(
i
<
scenes
.
length
)
{
this
.
preloadSource
(
data1
.
rows
);
setTimeout
(()
=>
{
});
load
();
});
},
1
);
}
}
});
preloadSourceImman
()
{
});
// 测试用
}
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
true
;
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
).
active
=
true
;
if
(
scenes
&&
scenes
.
length
>
0
)
{
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/courseware/v1/getresources`
,
{
courseid
:
20894
},
(
datastr1
)
=>
{
load
();
const
data1
=
JSON
.
parse
(
datastr1
);
}
if
(
data1
.
rows
&&
data1
.
rows
.
length
>
0
)
{
}
this
.
preloadCount
+=
data1
.
rows
.
length
;
}
preloadSource
(
array
)
{
this
.
log
(
'
data1.rows =
'
+
JSON
.
stringify
(
data1
.
rows
));
const
rows
=
array
||
[];
this
.
preloadSource
(
data1
.
rows
);
const
batchLoad
=
()
=>
{
});
let
tempArr
=
rows
.
splice
(
0
,
10
);
}
let
len
=
tempArr
.
length
;
for
(
let
i
=
0
;
i
<
tempArr
.
length
;
i
++
)
{
batchPreloadScene
(
scenes
=
[])
{
cc
.
assetManager
.
loadRemote
(
tempArr
[
i
],
(
err
,
texture
)
=>
{
const
expects
=
[
if
(
err
)
{
// 'op_03_2',
console
.
log
(
err
)
// 'OP10_online',
}
];
this
.
loadedCount
++
;
const
_this
=
this
;
this
.
updateProcessBar
();
let
i
=
0
;
if
(
i
===
len
-
1
)
{
const
load
=
function
()
{
batchLoad
();
const
scene
=
scenes
[
i
];
}
if
(
expects
.
includes
(
scene
.
sceneName
))
{
});
_this
.
loadedCount
++
;
}
_this
.
updateProcessBar
();
}
i
++
;
batchLoad
();
if
(
i
<
scenes
.
length
)
{
}
setTimeout
(()
=>
{
load
();
updateProcessBar
()
{
},
1
);
const
label
=
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
getComponent
(
cc
.
Label
);
}
const
loadingProgress
=
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
);
return
;
label
.
string
=
`正在加载:
${
this
.
loadedCount
}
/
${
this
.
preloadCount
}
`
;
}
if
(
this
.
loadedCount
>
this
.
preloadCount
*
0.99
)
{
cc
.
assetManager
.
loadBundle
(
scene
.
bondleUrl
,
{
version
:
scene
.
version
},
(
err
,
bundle
)
=>
{
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
false
;
console
.
log
(
`
${
scene
.
bondleUrl
}
---场景开始loadBundle----`
);
loadingProgress
.
active
=
false
;
if
(
!
bundle
)
{
this
.
showLog
(
"
资源全部加载完成
"
);
_this
.
loadedCount
++
;
}
_this
.
updateProcessBar
();
loadingProgress
.
getComponent
(
cc
.
ProgressBar
).
progress
=
this
.
loadedCount
/
this
.
preloadCount
;
i
++
;
}
if
(
i
<
scenes
.
length
)
{
setTimeout
(()
=>
{
currentBundleInfo
=
null
;
load
();
onHomeworkFinish
(
callBack
,
data
=
null
)
{
},
1
);
console
.
log
(
'
this.courseIndex =
'
+
JSON
.
stringify
(
this
.
currentBundleInfo
));
}
if
(
this
.
currentBundleInfo
.
sceneName
==
'
ls_fly
'
)
{
return
;
const
rightCount
=
data
.
reduce
((
preValue
,
right
)
=>
{
}
if
(
right
)
{
bundle
.
preloadScene
(
scene
.
sceneName
,
()
=>
{
},
()
=>
{
return
preValue
+
1
;
console
.
log
(
`
${
scene
.
sceneName
}
场景预加载结束`
);
}
else
{
_this
.
loadedCount
++
;
return
preValue
;
_this
.
updateProcessBar
();
}
i
++
;
},
0
);
if
(
i
<
scenes
.
length
)
{
console
.
log
(
'
rightCount =
'
+
rightCount
);
setTimeout
(()
=>
{
}
load
();
this
.
showRestartBtn
();
},
1
);
console
.
log
(
'
onHomeworkFinish:
'
+
JSON
.
stringify
(
data
));
}
}
});
});
showRestartBtn
()
{
}
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
btnRestart
.
active
=
true
;
if
(
scenes
&&
scenes
.
length
>
0
)
{
btnRestart
.
once
(
'
click
'
,
()
=>
{
load
();
btnRestart
.
active
=
false
;
}
this
.
loadPageBundle
();
}
});
}
preloadSource
(
array
)
{
const
rows
=
array
||
[];
callMiddleLayerFunction
(
apiName
,
data
,
callback
)
{
const
batchLoad
=
()
=>
{
switch
(
apiName
)
{
let
tempArr
=
rows
.
splice
(
0
,
10
);
case
'
NS_login
'
:
let
len
=
tempArr
.
length
;
if
(
data
.
userName
==
'
admin
'
&&
data
.
password
==
'
123456
'
)
{
for
(
let
i
=
0
;
i
<
tempArr
.
length
;
i
++
)
{
this
.
showLog
(
'
登录成功!
'
);
cc
.
assetManager
.
loadRemote
(
tempArr
[
i
],
(
err
,
texture
)
=>
{
callback
(
'
登录成功!
'
);
if
(
err
)
{
}
else
{
console
.
log
(
err
)
this
.
showLog
(
'
密码错误!
'
);
}
callback
(
'
密码错误!
'
);
this
.
loadedCount
++
;
}
this
.
updateProcessBar
();
break
;
if
(
i
===
len
-
1
)
{
case
'
NS_logout
'
:
batchLoad
();
this
.
showLog
(
'
登出成功!
'
);
}
callback
(
'
登出成功!
'
);
});
break
;
}
case
'
NS_select_book
'
:
}
if
(
data
.
bookId
==
10001
)
{
batchLoad
();
this
.
showLog
(
'
选择剧本:
'
+
data
.
bookId
);
}
callback
(
'
选择剧本:
'
+
data
.
bookId
);
}
else
{
updateProcessBar
()
{
this
.
showLog
(
'
剧本未解锁!
'
);
const
label
=
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
getComponent
(
cc
.
Label
);
callback
(
'
剧本未解锁!
'
);
const
loadingProgress
=
cc
.
find
(
'
middleLayer/ui/loadingProgress
'
);
}
label
.
string
=
`正在加载:
${
this
.
loadedCount
}
/
${
this
.
preloadCount
}
`
;
break
;
if
(
this
.
loadedCount
>
this
.
preloadCount
*
0.99
)
{
case
'
NS_select_stage
'
:
cc
.
find
(
"
middleLayer/ui/ProgressLabel
"
).
active
=
false
;
if
(
data
.
stageId
==
10011
)
{
loadingProgress
.
active
=
false
;
this
.
showLog
(
'
选择关卡:
'
+
data
.
stageId
);
this
.
showLog
(
"
资源全部加载完成
"
);
callback
(
'
选择关卡:
'
+
data
.
stageId
);
}
}
else
{
loadingProgress
.
getComponent
(
cc
.
ProgressBar
).
progress
=
this
.
loadedCount
/
this
.
preloadCount
;
this
.
showLog
(
'
关卡未解锁!
'
);
}
callback
(
'
关卡未解锁!
'
);
}
currentBundleInfo
=
null
;
break
;
onHomeworkFinish
(
callBack
,
data
=
null
)
{
case
'
NS_select_event
'
:
console
.
log
(
'
this.courseIndex =
'
+
JSON
.
stringify
(
this
.
currentBundleInfo
));
this
.
showLog
(
'
选择活动:
'
+
data
.
eventId
);
if
(
this
.
currentBundleInfo
.
sceneName
==
'
ls_fly
'
)
{
callback
(
'
选择活动:
'
+
data
.
eventId
);
const
rightCount
=
data
.
reduce
((
preValue
,
right
)
=>
{
break
;
if
(
right
)
{
case
'
NS_select_game
'
:
return
preValue
+
1
;
this
.
showLog
(
'
选择游戏:
'
+
data
.
gameId
);
}
else
{
callback
(
'
选择游戏:
'
+
data
.
gameId
);
return
preValue
;
break
;
}
case
'
PSQS_get_pass_code
'
:
},
0
);
this
.
showLog
(
'
获取验证码:
'
+
data
.
phone
);
console
.
log
(
'
rightCount =
'
+
rightCount
);
callback
({
success
:
true
});
}
break
;
this
.
showRestartBtn
();
case
'
PSQS_login
'
:
console
.
log
(
'
onHomeworkFinish:
'
+
JSON
.
stringify
(
data
));
this
.
showLog
(
`登录/注册:
${
data
.
phone
}
${
data
.
code
}
`
);
}
callback
({
success
:
true
,
showRestartBtn
()
{
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
phone
:
13812345678
,
btnRestart
.
active
=
true
;
nickName
:
"
小豆梓
"
,
btnRestart
.
once
(
'
click
'
,
()
=>
{
sex
:
"
girl
"
,
btnRestart
.
active
=
false
;
provice
:
"
辽宁省
"
,
this
.
loadPageBundle
();
city
:
"
大连市
"
,
});
age
:
'
5~8岁
'
,
}
grade
:
'
一年级
'
},
callMiddleLayerFunction
(
apiName
,
data
,
callback
)
{
bookInfo
:
[{
switch
(
apiName
)
{
name
:
"
kind_A
"
,
case
'
NS_login
'
:
selected
:
true
,
if
(
data
.
userName
==
'
admin
'
&&
data
.
password
==
'
123456
'
)
{
bookList
:
[{
this
.
showLog
(
'
登录成功!
'
);
id
:
12334
,
callback
(
'
登录成功!
'
);
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
}
else
{
duration
:
"
21:33
"
,
this
.
showLog
(
'
密码错误!
'
);
rate
:
"
55%
"
,
callback
(
'
密码错误!
'
);
createDate
:
"
2012-12-21
"
}
},
{
break
;
id
:
12231
,
case
'
NS_logout
'
:
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
this
.
showLog
(
'
登出成功!
'
);
duration
:
"
21:33
"
,
callback
(
'
登出成功!
'
);
readTime
:
2
,
break
;
createDate
:
"
2012-12-21
"
case
'
NS_select_book
'
:
}],
if
(
data
.
bookId
==
10001
)
{
},
{
this
.
showLog
(
'
选择剧本:
'
+
data
.
bookId
);
name
:
"
kind_B
"
,
callback
(
'
选择剧本:
'
+
data
.
bookId
);
bookList
:
[{
}
else
{
id
:
12235
,
this
.
showLog
(
'
剧本未解锁!
'
);
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
callback
(
'
剧本未解锁!
'
);
duration
:
"
21:33
"
,
}
readTime
:
1
,
break
;
createDate
:
"
2012-12-21
"
case
'
NS_select_stage
'
:
}],
if
(
data
.
stageId
==
10011
)
{
}]
this
.
showLog
(
'
选择关卡:
'
+
data
.
stageId
);
});
callback
(
'
选择关卡:
'
+
data
.
stageId
);
break
;
}
else
{
case
'
PSQS_set_user_info
'
:
this
.
showLog
(
'
关卡未解锁!
'
);
this
.
showLog
(
`设置用户信息:
${
JSON
.
stringify
(
data
)}
`
);
callback
(
'
关卡未解锁!
'
);
callback
({
success
:
true
});
}
break
;
break
;
case
'
PSQS_scan_code
'
:
case
'
NS_select_event
'
:
this
.
showLog
(
`扫码`
);
this
.
showLog
(
'
选择活动:
'
+
data
.
eventId
);
callback
({
callback
(
'
选择活动:
'
+
data
.
eventId
);
success
:
true
,
break
;
bookInfo
:
[{
case
'
NS_select_game
'
:
name
:
"
kind_A
"
,
this
.
showLog
(
'
选择游戏:
'
+
data
.
gameId
);
selected
:
true
,
callback
(
'
选择游戏:
'
+
data
.
gameId
);
bookList
:
[{
break
;
id
:
12334
,
case
'
PSQS_get_pass_code
'
:
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
this
.
showLog
(
'
获取验证码:
'
+
data
.
phone
);
duration
:
"
21:33
"
,
callback
({
success
:
true
});
rate
:
"
0%
"
,
break
;
createDate
:
"
2012-12-21
"
case
'
PSQS_login
'
:
}],
this
.
showLog
(
`登录/注册:
${
data
.
phone
}
${
data
.
code
}
`
);
},
{
callback
({
name
:
"
kind_B
"
,
success
:
true
,
bookList
:
[],
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
}]
phone
:
13812345678
,
});
nickName
:
"
小豆梓
"
,
break
;
sex
:
"
girl
"
,
case
'
PSQS_read_book
'
:
provice
:
"
辽宁省
"
,
this
.
showLog
(
'
进入课件:
'
+
data
.
bookId
);
city
:
"
大连市
"
,
callback
({
success
:
true
});
age
:
'
5~8岁
'
,
break
;
grade
:
'
一年级
'
case
'
PSQS_get_basic_info
'
:
},
this
.
showLog
(
'
获取基本信息
'
);
bookInfo
:
[{
callback
({
name
:
"
kind_A
"
,
version
:
'
bata 0.9.7
'
,
selected
:
true
,
privacyPolicyUrl
:
'
http://www.baidu.com
'
,
bookList
:
[{
userAgreement
:
'
http://www.baidu.com
'
,
id
:
12334
,
});
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
break
;
duration
:
"
21:33
"
,
case
'
PSQS_play_animate_over
'
:
rate
:
"
55%
"
,
break
;
createDate
:
"
2012-12-21
"
case
'
PSQS_jump_to_question
'
:
},
{
break
;
id
:
12231
,
case
'
PSQS_get_course_info
'
:
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
this
.
showLog
(
'
获取播放骨骼动画模板的信息
'
);
duration
:
"
21:33
"
,
const
returnData
=
{
readTime
:
2
,
first
:
false
,
// 是不是第一个模板
createDate
:
"
2012-12-21
"
last
:
false
,
// 是不是最后一个模板
}],
playTime
:
0
,
// 播放了几次 0:不需要跳题 1:需要跳题
},
{
saveData
:
{}
name
:
"
kind_B
"
,
}
bookList
:
[{
callback
(
returnData
);
id
:
12235
,
break
;
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
case
'
PSQS_show_rabbit
'
:
duration
:
"
21:33
"
,
break
;
readTime
:
1
,
case
'
PSQS_hide_rabbit
'
:
createDate
:
"
2012-12-21
"
break
;
}],
case
'
PSQS_logout
'
:
}]
callback
({
success
:
true
});
});
break
;
break
;
case
'
PSQS_get_province
'
:
case
'
PSQS_set_user_info
'
:
callback
([
'
北京
'
,
'
上海
'
]);
this
.
showLog
(
`设置用户信息:
${
JSON
.
stringify
(
data
)}
`
);
break
;
callback
({
success
:
true
});
case
'
PSQS_get_city
'
:
break
;
callback
([
'
北京市
'
]);
case
'
PSQS_scan_code
'
:
break
;
this
.
showLog
(
`扫码`
);
case
'
PSQS_check_login
'
:
callback
({
callback
({
success
:
true
,
success
:
true
,
bookInfo
:
[{
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
name
:
"
kind_A
"
,
phone
:
13812345678
,
selected
:
true
,
nickName
:
"
小豆梓
"
,
bookList
:
[{
sex
:
"
girl
"
,
id
:
12334
,
provice
:
"
辽宁省
"
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
city
:
"
大连市
"
,
duration
:
"
21:33
"
,
age
:
'
5~8岁
'
,
rate
:
"
0%
"
,
grade
:
'
一年级
'
createDate
:
"
2012-12-21
"
},
}],
bookInfo
:
[{
},
{
name
:
"
kind_A
"
,
name
:
"
kind_B
"
,
bookList
:
[{
bookList
:
[],
id
:
12334
,
}]
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
});
duration
:
"
21:33
"
,
break
;
rate
:
"
55%
"
,
case
'
PSQS_read_book
'
:
createDate
:
"
2012-12-21
"
this
.
showLog
(
'
进入课件:
'
+
data
.
bookId
);
},
{
callback
({
success
:
true
});
id
:
12231
,
break
;
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
case
'
PSQS_get_basic_info
'
:
duration
:
"
21:33
"
,
this
.
showLog
(
'
获取基本信息
'
);
readTime
:
2
,
callback
({
createDate
:
"
2012-12-21
"
version
:
'
bata 0.9.7
'
,
}],
privacyPolicyUrl
:
'
http://www.baidu.com
'
,
},
{
userAgreement
:
'
http://www.baidu.com
'
,
name
:
"
kind_B
"
,
});
selected
:
true
,
break
;
bookList
:
[{
case
'
PSQS_play_animate_over
'
:
id
:
12235
,
break
;
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
case
'
PSQS_jump_to_question
'
:
duration
:
"
21:33
"
,
break
;
readTime
:
1
,
case
'
PSQS_get_course_info
'
:
createDate
:
"
2012-12-21
"
this
.
showLog
(
'
获取播放骨骼动画模板的信息
'
);
}],
const
returnData
=
{
}]
first
:
false
,
// 是不是第一个模板
});
last
:
false
,
// 是不是最后一个模板
break
;
playTime
:
0
,
// 播放了几次 0:不需要跳题 1:需要跳题
default
:
saveData
:
{}
this
.
showLog
(
'
未定义接口:
'
+
apiName
);
}
break
;
callback
(
returnData
);
}
break
;
}
case
'
PSQS_show_rabbit
'
:
break
;
localMode
=
false
;
case
'
PSQS_hide_rabbit
'
:
break
;
asyncDelayLog
(
str
)
{
case
'
PSQS_logout
'
:
console
.
log
(
str
);
callback
({
success
:
true
});
return
new
Promise
((
resolve
,
reject
)
=>
{
break
;
setTimeout
(()
=>
{
case
'
PSQS_get_province
'
:
resolve
(
null
);
callback
([
'
北京
'
,
'
上海
'
]);
},
1
);
break
;
});
case
'
PSQS_get_city
'
:
}
callback
([
'
北京市
'
]);
break
;
initListener
()
{
case
'
PSQS_check_login
'
:
const
exitBtn
=
cc
.
find
(
'
middleLayer/ExitBtn
'
);
callback
({
exitBtn
.
on
(
'
click
'
,
()
=>
{
success
:
true
,
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
phone
:
13812345678
,
nickName
:
"
小豆梓
"
,
cc
.
tween
(
exitBtn
)
sex
:
"
girl
"
,
.
to
(
0.1
,
{
scaleX
:
0.4
,
scaleY
:
0.6
})
provice
:
"
辽宁省
"
,
.
to
(
0.1
,
{
scaleX
:
0.6
,
scaleY
:
0.4
})
city
:
"
大连市
"
,
.
to
(
0.1
,
{
scaleX
:
0.5
,
scaleY
:
0.5
})
age
:
'
5~8岁
'
,
.
call
(()
=>
{
grade
:
'
一年级
'
exitBtn
.
active
=
false
;
},
cc
.
game
.
removePersistRootNode
(
this
.
node
);
bookInfo
:
[{
// cc.director.getScene().destroy();
name
:
"
kind_A
"
,
cc
.
audioEngine
.
stopAll
();
bookList
:
[{
(
<
any
>
window
).
courseware
.
freeAllOcMethod
();
id
:
12334
,
const
flag
=
cc
.
director
.
loadScene
(
"
debug_shell
"
,
(
err
,
scene
)
=>
{
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
});
duration
:
"
21:33
"
,
if
(
!
flag
)
{
rate
:
"
55%
"
,
// 没有壳的情况下,直接加载中间层场景
createDate
:
"
2012-12-21
"
cc
.
director
.
loadScene
(
"
middleLayer_for_debug
"
,
(
err
,
scene
)
=>
{
},
{
});
id
:
12231
,
}
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
})
duration
:
"
21:33
"
,
.
start
();
readTime
:
2
,
});
createDate
:
"
2012-12-21
"
}],
cc
.
find
(
'
middleLayer/BtnRight
'
).
on
(
'
click
'
,
()
=>
{
},
{
this
.
goNextPage
();
name
:
"
kind_B
"
,
});
selected
:
true
,
bookList
:
[{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
on
(
'
click
'
,
()
=>
{
id
:
12235
,
this
.
goPrePage
();
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
});
duration
:
"
21:33
"
,
readTime
:
1
,
cc
.
find
(
'
middleLayer/ui/BtnOpenOsmo
'
).
on
(
'
click
'
,
()
=>
{
createDate
:
"
2012-12-21
"
(
<
any
>
window
).
courseware
.
openOsmo
();
}],
});
}]
});
cc
.
find
(
'
middleLayer/ui/BtnCloseOsmo
'
).
on
(
'
click
'
,
()
=>
{
break
;
(
<
any
>
window
).
courseware
.
closeOsmo
();
default
:
});
this
.
showLog
(
'
未定义接口:
'
+
apiName
);
break
;
cc
.
find
(
'
middleLayer/ui/BtnOpenRecord
'
).
on
(
'
click
'
,
()
=>
{
}
(
<
any
>
window
).
courseware
.
startRecord
(
1
);
}
});
localMode
=
false
;
cc
.
find
(
'
middleLayer/ui/BtnCloseRecord
'
).
on
(
'
click
'
,
()
=>
{
(
<
any
>
window
).
courseware
.
stopRecord
(
res
=>
{
asyncDelayLog
(
str
)
{
this
.
log
(
'
--------录音返回结果 stopRecord ------------
'
);
console
.
log
(
str
);
this
.
log
(
res
)
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
log
(
'
------------------------------
'
);
setTimeout
(()
=>
{
this
.
log
(
`录音的文本是
${
JSON
.
parse
(
res
).
text
}
`
);
resolve
(
null
);
this
.
log
(
`录音的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
},
1
);
});
});
});
}
cc
.
find
(
'
middleLayer/ui/BtnScanCode
'
).
on
(
'
click
'
,
()
=>
{
initListener
()
{
(
<
any
>
window
).
courseware
.
startScanCode
((
res
)
=>
{
const
exitBtn
=
cc
.
find
(
'
middleLayer/ExitBtn
'
);
this
.
showLog
(
res
);
exitBtn
.
on
(
'
click
'
,
()
=>
{
});
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
});
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
cc
.
find
(
'
middleLayer/ui/BtnNeedUpdate
'
).
on
(
'
click
'
,
()
=>
{
cc
.
tween
(
exitBtn
)
(
<
any
>
window
).
courseware
.
needUpdate
(
'
检测到更新:
'
,
'
http://www.baidu.com
'
,
(
res
)
=>
{
.
to
(
0.1
,
{
scaleX
:
0.4
,
scaleY
:
0.6
})
this
.
showLog
(
res
);
.
to
(
0.1
,
{
scaleX
:
0.6
,
scaleY
:
0.4
})
});
.
to
(
0.1
,
{
scaleX
:
0.5
,
scaleY
:
0.5
})
});
.
call
(()
=>
{
exitBtn
.
active
=
false
;
cc
.
find
(
'
middleLayer/ui/BtnOpenTest
'
).
on
(
'
click
'
,
()
=>
{
cc
.
game
.
removePersistRootNode
(
this
.
node
);
(
<
any
>
window
).
courseware
.
startTest
(
'
apple
'
);
// cc.director.getScene().destroy();
});
cc
.
audioEngine
.
stopAll
();
(
<
any
>
window
).
courseware
.
freeAllOcMethod
();
cc
.
find
(
'
middleLayer/ui/BtnCloseTest
'
).
on
(
'
click
'
,
()
=>
{
const
flag
=
cc
.
director
.
loadScene
(
"
debug_shell
"
,
(
err
,
scene
)
=>
{
(
<
any
>
window
).
courseware
.
stopTest
(
res
=>
{
});
this
.
log
(
'
--------录音评测返回结果 stopTest ---------
'
);
if
(
!
flag
)
{
this
.
log
(
res
)
// 没有壳的情况下,直接加载中间层场景
this
.
log
(
'
------------------------------
'
);
cc
.
director
.
loadScene
(
"
middleLayer_for_debug
"
,
(
err
,
scene
)
=>
{
this
.
log
(
`录音apple的评分是
${
JSON
.
parse
(
res
).
result
.
overall
}
`
);
});
this
.
log
(
`录音apple的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
}
});
})
});
.
start
();
});
const
BtnStartLocal
=
cc
.
find
(
'
middleLayer/ui/BtnStartLocal
'
);
BtnStartLocal
.
on
(
'
click
'
,
()
=>
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
on
(
'
click
'
,
()
=>
{
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
this
.
goNextPage
();
const
str
=
addressText
.
getComponent
(
cc
.
EditBox
).
string
;
});
cc
.
sys
.
localStorage
.
setItem
(
'
ip
'
,
str
);
const
address
=
str
.
split
(
'
:
'
)[
0
];
cc
.
find
(
'
middleLayer/BtnLeft
'
).
on
(
'
click
'
,
()
=>
{
const
port
=
str
.
split
(
'
:
'
)[
1
]
||
8081
;
this
.
goPrePage
();
this
.
localMode
=
true
;
});
this
.
loadLocalBundle
(
address
,
port
);
this
.
showWaitingLetters
();
cc
.
find
(
'
middleLayer/ui/BtnOpenOsmo
'
).
on
(
'
click
'
,
()
=>
{
this
.
hideUI
();
(
<
any
>
window
).
courseware
.
openOsmo
();
this
.
showDebugUI
();
});
});
cc
.
find
(
'
middleLayer/ui/BtnCloseOsmo
'
).
on
(
'
click
'
,
()
=>
{
const
BtnStartOnline
=
cc
.
find
(
'
middleLayer/ui/BtnStartOnline
'
);
(
<
any
>
window
).
courseware
.
closeOsmo
();
BtnStartOnline
.
on
(
'
click
'
,
()
=>
{
});
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
const
bundleName
=
nameText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
find
(
'
middleLayer/ui/BtnOpenRecord
'
).
on
(
'
click
'
,
()
=>
{
cc
.
sys
.
localStorage
.
setItem
(
'
bundleName
'
,
bundleName
);
(
<
any
>
window
).
courseware
.
startRecord
(
1
);
this
.
loadOnlineBundle
(
bundleName
);
});
this
.
showDebugUI
();
});
cc
.
find
(
'
middleLayer/ui/BtnCloseRecord
'
).
on
(
'
click
'
,
()
=>
{
(
<
any
>
window
).
courseware
.
stopRecord
(
res
=>
{
const
BtnStartCourseWare
=
cc
.
find
(
'
middleLayer/ui/BtnStartCourseWare
'
);
this
.
log
(
'
--------录音返回结果 stopRecord ------------
'
);
BtnStartCourseWare
.
on
(
'
click
'
,
()
=>
{
this
.
log
(
res
)
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
this
.
log
(
'
------------------------------
'
);
const
courseId
=
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
;
this
.
log
(
`录音的文本是
${
JSON
.
parse
(
res
).
text
}
`
);
cc
.
sys
.
localStorage
.
setItem
(
'
courseId
'
,
courseId
);
this
.
log
(
`录音的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
this
.
loadOnlineCourseWare
(
courseId
);
});
this
.
showDebugUI
();
});
});
cc
.
find
(
'
middleLayer/ui/BtnScanCode
'
).
on
(
'
click
'
,
()
=>
{
const
BtnLoad
=
cc
.
find
(
'
middleLayer/ui/BtnLoad
'
);
(
<
any
>
window
).
courseware
.
startScanCode
((
res
)
=>
{
BtnLoad
.
on
(
'
click
'
,
()
=>
{
this
.
showLog
(
res
);
});
// 测试获取设备信息
});
(
<
any
>
window
).
courseware
.
getEngineInfo
(
res
=>
{
this
.
log
(
'
--------getEngineInfo返回结果---------
'
);
cc
.
find
(
'
middleLayer/ui/BtnNeedUpdate
'
).
on
(
'
click
'
,
()
=>
{
this
.
log
(
res
)
(
<
any
>
window
).
courseware
.
needUpdate
(
'
检测到更新:
'
,
'
http://www.baidu.com
'
,
(
res
)
=>
{
this
.
log
(
'
------------------------------
'
);
this
.
showLog
(
res
);
});
});
});
// 测试预加载资源
// this.preloadCount = 0;
cc
.
find
(
'
middleLayer/ui/BtnOpenTest
'
).
on
(
'
click
'
,
()
=>
{
// this.loadedCount = 0;
(
<
any
>
window
).
courseware
.
startTest
(
'
apple
'
);
// cc.find("middleLayer/ui/ProgressLabel").active = true;
});
// cc.find('middleLayer/ui/loadingProgress').active = true;
// // this.preloadAll();
cc
.
find
(
'
middleLayer/ui/BtnCloseTest
'
).
on
(
'
click
'
,
()
=>
{
// this.preloadSourceImman();
(
<
any
>
window
).
courseware
.
stopTest
(
res
=>
{
});
this
.
log
(
'
--------录音评测返回结果 stopTest ---------
'
);
this
.
log
(
res
)
const
btnClose
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnClose
'
);
this
.
log
(
'
------------------------------
'
);
const
btnOpen
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnOpen
'
);
this
.
log
(
`录音apple的评分是
${
JSON
.
parse
(
res
).
result
.
overall
}
`
);
const
consoleNode
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console
'
);
this
.
log
(
`录音apple的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
const
consoleBg
=
cc
.
find
(
'
middleLayer/ConsoleNode/bg
'
);
});
btnOpen
.
on
(
'
click
'
,
()
=>
{
});
btnClose
.
active
=
true
;
btnOpen
.
active
=
false
;
const
BtnStartLocal
=
cc
.
find
(
'
middleLayer/ui/BtnStartLocal
'
);
consoleNode
.
active
=
true
;
BtnStartLocal
.
on
(
'
click
'
,
()
=>
{
consoleBg
.
active
=
true
;
const
addressText
=
cc
.
find
(
'
middleLayer/ui/address
'
);
});
const
str
=
addressText
.
getComponent
(
cc
.
EditBox
).
string
;
cc
.
sys
.
localStorage
.
setItem
(
'
ip
'
,
str
);
btnClose
.
on
(
'
click
'
,
()
=>
{
const
address
=
str
.
split
(
'
:
'
)[
0
];
btnClose
.
active
=
false
;
const
port
=
str
.
split
(
'
:
'
)[
1
]
||
8081
;
btnOpen
.
active
=
true
;
this
.
localMode
=
true
;
consoleNode
.
active
=
false
;
this
.
loadLocalBundle
(
address
,
port
);
consoleBg
.
active
=
false
;
this
.
showWaitingLetters
();
});
this
.
hideUI
();
}
this
.
showDebugUI
();
});
goPrePage
()
{
this
.
goTarIndexPage
(
this
.
courseIndex
-
1
);
const
BtnStartOnline
=
cc
.
find
(
'
middleLayer/ui/BtnStartOnline
'
);
}
BtnStartOnline
.
on
(
'
click
'
,
()
=>
{
goNextPage
()
{
const
nameText
=
cc
.
find
(
'
middleLayer/ui/bundleName
'
);
this
.
goTarIndexPage
(
this
.
courseIndex
+
1
);
const
bundleName
=
nameText
.
getComponent
(
cc
.
EditBox
).
string
;
}
cc
.
sys
.
localStorage
.
setItem
(
'
bundleName
'
,
bundleName
);
goTarIndexPage
(
index
)
{
this
.
loadOnlineBundle
(
bundleName
);
if
(
!
this
.
courses
||
index
==
this
.
courseIndex
||
index
<
0
||
index
>
this
.
courses
.
length
-
1
)
{
this
.
showDebugUI
();
return
;
});
}
const
BtnStartCourseWare
=
cc
.
find
(
'
middleLayer/ui/BtnStartCourseWare
'
);
(
<
any
>
window
).
courseware
.
freeAllOcMethod
();
BtnStartCourseWare
.
on
(
'
click
'
,
()
=>
{
const
courseIdNode
=
cc
.
find
(
'
middleLayer/ui/courseId
'
);
this
.
courseIndex
=
index
;
const
courseId
=
courseIdNode
.
getComponent
(
cc
.
EditBox
).
string
;
this
.
courseItem
=
this
.
courses
[
this
.
courseIndex
];
cc
.
sys
.
localStorage
.
setItem
(
'
courseId
'
,
courseId
);
if
(
this
.
courseIndex
==
0
)
{
this
.
loadOnlineCourseWare
(
courseId
);
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
this
.
showDebugUI
();
}
else
{
});
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
}
const
BtnLoad
=
cc
.
find
(
'
middleLayer/ui/BtnLoad
'
);
if
(
this
.
courseIndex
==
this
.
courses
.
length
-
1
)
{
BtnLoad
.
on
(
'
click
'
,
()
=>
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
}
else
{
// 测试获取设备信息
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
(
<
any
>
window
).
courseware
.
getEngineInfo
(
res
=>
{
}
this
.
log
(
'
--------getEngineInfo返回结果---------
'
);
this
.
loadPageBundle
();
this
.
log
(
res
)
}
this
.
log
(
'
------------------------------
'
);
log
(
str
)
{
});
const
logStr
=
`
${
new
Date
().
toLocaleString
()}
:
${
str
}
`
;
console
.
log
(
logStr
);
// 测试预加载资源
const
content
=
cc
.
instantiate
(
cc
.
find
(
'
middleLayer/ConsoleNode/content
'
));
// this.preloadCount = 0;
content
.
active
=
true
;
// this.loadedCount = 0;
const
label
=
content
.
getChildByName
(
'
label
'
);
// cc.find("middleLayer/ui/ProgressLabel").active = true;
label
.
getComponent
(
cc
.
Label
).
string
=
logStr
;
// cc.find('middleLayer/ui/loadingProgress').active = true;
const
consoleContent
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console/content
'
);
// // this.preloadAll();
consoleContent
.
addChild
(
content
);
// this.preloadSourceImman();
consoleContent
.
getComponent
(
cc
.
Layout
).
updateLayout
();
});
}
hideUI
()
{
const
btnClose
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnClose
'
);
cc
.
find
(
'
middleLayer/ui
'
).
active
=
false
;
const
btnOpen
=
cc
.
find
(
'
middleLayer/ConsoleNode/BtnOpen
'
);
}
const
consoleNode
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console
'
);
loadOnlineBundle
(
bundleName
)
{
const
consoleBg
=
cc
.
find
(
'
middleLayer/ConsoleNode/bg
'
);
this
.
hideUI
();
btnOpen
.
on
(
'
click
'
,
()
=>
{
this
.
showWaitingLetters
();
btnClose
.
active
=
true
;
this
.
callNetworkApiGet
(
`/api/template/v1/
${
bundleName
}
`
,
{},
(
datastr
)
=>
{
btnOpen
.
active
=
false
;
const
data
=
JSON
.
parse
(
datastr
);
consoleNode
.
active
=
true
;
let
configData
=
null
;
consoleBg
.
active
=
true
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
});
configData
=
data
.
data
.
conf
.
ios
;
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
btnClose
.
on
(
'
click
'
,
()
=>
{
configData
=
data
.
data
.
conf
.
android
;
btnClose
.
active
=
false
;
}
else
{
btnOpen
.
active
=
true
;
configData
=
data
.
data
.
conf
.
web_desktop
;
consoleNode
.
active
=
false
;
}
consoleBg
.
active
=
false
;
const
sceneName
=
configData
.
sceneName
;
});
const
version
=
configData
.
version
;
}
const
bondleUrl
=
configData
.
bondleUrl
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
goPrePage
()
{
});
this
.
goTarIndexPage
(
this
.
courseIndex
-
1
);
}
}
courses
=
null
;
goNextPage
()
{
courseIndex
=
0
;
this
.
goTarIndexPage
(
this
.
courseIndex
+
1
);
courseItem
=
null
;
}
loadOnlineCourseWare
(
courseId
,
linkFlag
=
false
)
{
goTarIndexPage
(
index
)
{
this
.
hideUI
();
if
(
!
this
.
courses
||
index
==
this
.
courseIndex
||
index
<
0
||
index
>
this
.
courses
.
length
-
1
)
{
this
.
showWaitingLetters
();
return
;
}
let
api
=
`/api/courseware/v1/
${
courseId
}
/list`
;
if
(
linkFlag
===
true
)
{
(
<
any
>
window
).
courseware
.
freeAllOcMethod
();
api
=
`/api/courseware/v1/
${
courseId
}
/eq/level/list`
;
}
this
.
courseIndex
=
index
;
this
.
callNetworkApiGet
(
api
,
{},
(
datastr
)
=>
{
this
.
courseItem
=
this
.
courses
[
this
.
courseIndex
];
const
data
=
JSON
.
parse
(
datastr
);
if
(
this
.
courseIndex
==
0
)
{
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
this
.
courses
=
data
.
rows
;
}
else
{
this
.
courseIndex
=
data
.
index
||
0
;
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
this
.
courseItem
=
data
.
rows
[
this
.
courseIndex
];
}
}
if
(
this
.
courseIndex
==
this
.
courses
.
length
-
1
)
{
if
(
this
.
courses
&&
this
.
courses
.
length
>
1
&&
this
.
courseIndex
<=
this
.
courses
.
length
-
1
)
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
false
;
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
}
else
{
}
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
if
(
this
.
courseIndex
>
0
)
{
}
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
this
.
loadPageBundle
();
}
}
this
.
reWriteAir
();
log
(
str
)
{
this
.
loadPageBundle
();
const
logStr
=
`
${
new
Date
().
toLocaleString
()}
:
${
str
}
`
;
});
console
.
log
(
logStr
);
}
const
content
=
cc
.
instantiate
(
cc
.
find
(
'
middleLayer/ConsoleNode/content
'
));
loadLocalBundle
(
address
,
port
)
{
content
.
active
=
true
;
this
.
callNetworkApiGetLocal
(
`http://
${
address
}
:
${
port
}
`
,
'
/dist/config.json
'
,
{},
(
datastr
)
=>
{
const
label
=
content
.
getChildByName
(
'
label
'
);
const
data
=
JSON
.
parse
(
datastr
);
label
.
getComponent
(
cc
.
Label
).
string
=
logStr
;
let
sceneName
=
''
;
const
consoleContent
=
cc
.
find
(
'
middleLayer/ConsoleNode/Console/content
'
);
let
version
=
''
;
consoleContent
.
addChild
(
content
);
let
bondleUrl
=
''
;
consoleContent
.
getComponent
(
cc
.
Layout
).
updateLayout
();
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
}
sceneName
=
data
.
ios
.
sceneName
;
hideUI
()
{
version
=
data
.
ios
.
version
;
cc
.
find
(
'
middleLayer/ui
'
).
active
=
false
;
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/ios/
${
sceneName
}
/`
;
}
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
loadOnlineBundle
(
bundleName
)
{
sceneName
=
data
.
android
.
sceneName
;
this
.
hideUI
();
version
=
data
.
android
.
version
;
this
.
showWaitingLetters
();
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/android/
${
sceneName
}
/`
;
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/template/v1/
${
bundleName
}
`
,
{},
(
datastr
)
=>
{
}
else
{
const
data
=
JSON
.
parse
(
datastr
);
sceneName
=
data
.
android
.
sceneName
;
let
configData
=
null
;
version
=
""
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/web_desktop/`
;
configData
=
data
.
data
.
conf
.
ios
;
}
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
configData
=
data
.
data
.
conf
.
android
;
});
}
else
{
}
configData
=
data
.
data
.
conf
.
web_desktop
;
loadPageBundle
()
{
}
let
sceneName
,
version
,
bondleUrl
=
""
;
const
sceneName
=
configData
.
sceneName
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
const
version
=
configData
.
version
;
sceneName
=
this
.
courseItem
.
conf
.
ios
.
sceneName
;
const
bondleUrl
=
configData
.
bondleUrl
;
version
=
this
.
courseItem
.
conf
.
ios
.
version
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
bondleUrl
=
this
.
courseItem
.
conf
.
ios
.
bondleUrl
;
});
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
}
sceneName
=
this
.
courseItem
.
conf
.
android
.
sceneName
;
courses
=
null
;
version
=
this
.
courseItem
.
conf
.
android
.
version
;
courseIndex
=
0
;
bondleUrl
=
this
.
courseItem
.
conf
.
android
.
bondleUrl
;
courseItem
=
null
;
}
else
{
loadOnlineCourseWare
(
courseId
,
linkFlag
=
false
)
{
sceneName
=
this
.
courseItem
.
conf
.
web_desktop
.
sceneName
;
this
.
hideUI
();
version
=
this
.
courseItem
.
conf
.
web_desktop
.
version
;
this
.
showWaitingLetters
();
bondleUrl
=
this
.
courseItem
.
conf
.
web_desktop
.
bondleUrl
;
}
let
api
=
`/api/courseware/v1/
${
courseId
}
/list`
;
if
(
linkFlag
===
true
)
{
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
api
=
`/api/courseware/v1/
${
courseId
}
/eq/level/list`
;
}
}
loadBundle
(
sceneName
,
version
,
bondleUrl
)
{
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
api
,
{},
(
datastr
)
=>
{
this
.
currentBundleInfo
=
{
sceneName
,
version
,
bondleUrl
};
const
data
=
JSON
.
parse
(
datastr
);
this
.
showMask
();
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
)
{
this
.
showWaitingLetters
();
this
.
courses
=
data
.
rows
;
cc
.
assetManager
.
loadBundle
(
bondleUrl
,
{
version
:
version
},
async
(
err
,
bundle
)
=>
{
this
.
courseIndex
=
data
.
index
||
0
;
if
(
err
)
{
this
.
courseItem
=
data
.
rows
[
this
.
courseIndex
];
return
this
.
asyncDelayLog
(
err
);
}
}
if
(
this
.
courses
&&
this
.
courses
.
length
>
1
&&
this
.
courseIndex
<=
this
.
courses
.
length
-
1
)
{
bundle
.
loadScene
(
sceneName
,
null
,
null
,
(
err
,
scene
)
=>
{
cc
.
find
(
'
middleLayer/BtnRight
'
).
active
=
true
;
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
}
btnRestart
.
active
=
false
;
if
(
this
.
courseIndex
>
0
)
{
if
(
err
)
{
cc
.
find
(
'
middleLayer/BtnLeft
'
).
active
=
false
;
this
.
asyncDelayLog
(
'
err:
'
+
err
);
}
}
this
.
reWriteAir
();
cc
.
audioEngine
.
stopAll
();
this
.
loadPageBundle
();
cc
.
director
.
runScene
(
scene
,
null
,
()
=>
{
});
console
.
log
(
'
sceneName =
'
+
sceneName
);
}
const
canvas
=
cc
.
find
(
'
Canvas
'
);
loadLocalBundle
(
address
,
port
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
this
.
callNetworkApiGetLocal
(
`http://
${
address
}
:
${
port
}
`
,
'
/dist/config.json
'
,
{},
(
datastr
)
=>
{
cc
.
find
(
'
middleLayer/ExitBtn
'
).
active
=
true
;
const
data
=
JSON
.
parse
(
datastr
);
this
.
hideWaitingLetters
();
let
sceneName
=
''
;
this
.
hideMask
();
let
version
=
''
;
canvas
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
let
bondleUrl
=
''
;
middleLayer
.
scale
=
canvas
.
width
/
middleLayer
.
width
;
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
// this.showLog('middleLayer.scale = ' + middleLayer.scale);
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
;
reloadBundle
()
{
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/android/
${
sceneName
}
/`
;
const
{
sceneName
,
version
,
bondleUrl
}
=
this
.
currentBundleInfo
;
}
else
{
sceneName
=
data
.
android
.
sceneName
;
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
version
=
""
;
}
bondleUrl
=
`http://
${
address
}
:
${
port
}
/dist/web_desktop/`
;
}
showMask
()
{
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
});
mask
.
active
=
true
;
}
cc
.
tween
(
mask
)
loadPageBundle
()
{
.
set
({
opacity
:
0
})
let
sceneName
,
version
,
bondleUrl
=
""
;
.
to
(
0.5
,
{
opacity
:
0
})
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
.
start
();
sceneName
=
this
.
courseItem
.
conf
.
ios
.
sceneName
;
}
version
=
this
.
courseItem
.
conf
.
ios
.
version
;
bondleUrl
=
this
.
courseItem
.
conf
.
ios
.
bondleUrl
;
hideMask
()
{
}
else
if
(
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
sceneName
=
this
.
courseItem
.
conf
.
android
.
sceneName
;
mask
.
stopAllActions
();
version
=
this
.
courseItem
.
conf
.
android
.
version
;
cc
.
tween
(
mask
)
bondleUrl
=
this
.
courseItem
.
conf
.
android
.
bondleUrl
;
.
set
({
opacity
:
0
})
}
else
{
.
to
(
0.5
,
{
opacity
:
0
})
sceneName
=
this
.
courseItem
.
conf
.
web_desktop
.
sceneName
;
.
call
(()
=>
{
version
=
this
.
courseItem
.
conf
.
web_desktop
.
version
;
mask
.
active
=
false
;
bondleUrl
=
this
.
courseItem
.
conf
.
web_desktop
.
bondleUrl
;
})
}
.
start
();
}
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
}
reWriteAir
()
{
loadBundle
(
sceneName
,
version
,
bondleUrl
)
{
(
<
any
>
window
).
courseware
.
getData
=
(
callback
)
=>
{
this
.
currentBundleInfo
=
{
sceneName
,
version
,
bondleUrl
};
let
data
=
null
;
this
.
showMask
();
if
(
this
.
courseItem
.
data
)
{
this
.
showWaitingLetters
();
data
=
JSON
.
parse
(
this
.
courseItem
.
data
);
cc
.
assetManager
.
loadBundle
(
bondleUrl
,
{
version
:
version
},
async
(
err
,
bundle
)
=>
{
}
if
(
err
)
{
this
.
log
(
"
===成功调用getData===
"
+
this
.
courseItem
.
data
);
return
this
.
asyncDelayLog
(
err
);
callback
&&
callback
(
data
);
}
}
bundle
.
loadScene
(
sceneName
,
null
,
null
,
(
err
,
scene
)
=>
{
(
<
any
>
window
).
courseware
.
nextPage
=
()
=>
{
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
this
.
goNextPage
();
btnRestart
.
active
=
false
;
}
if
(
err
)
{
(
<
any
>
window
).
courseware
.
beforePage
=
()
=>
{
this
.
asyncDelayLog
(
'
err:
'
+
err
);
this
.
goPrePage
();
}
}
cc
.
audioEngine
.
stopAll
();
(
<
any
>
window
).
courseware
.
sendAnswer
=
(
answerObj
)
=>
{
cc
.
director
.
runScene
(
scene
,
null
,
()
=>
{
this
.
log
(
"
===成功调用sendAnswer===
"
+
JSON
.
stringify
(
answerObj
));
console
.
log
(
'
sceneName =
'
+
sceneName
);
this
.
callNetworkApiPost
(
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/saveanswer`
,
answerObj
,
(
data
)
=>
{
const
canvas
=
cc
.
find
(
'
Canvas
'
);
answerObj
.
callback
&&
answerObj
.
callback
(
JSON
.
stringify
(
data
.
row
));
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
});
cc
.
find
(
'
middleLayer/ExitBtn
'
).
active
=
true
;
}
this
.
hideWaitingLetters
();
(
<
any
>
window
).
courseware
.
getAnswer
=
(
queryObj
,
callback
)
=>
{
this
.
hideMask
();
this
.
log
(
"
===成功调用getAnswer===
"
+
JSON
.
stringify
(
queryObj
));
canvas
.
getComponent
(
cc
.
Widget
).
updateAlignment
();
this
.
callNetworkApiGet
(
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/getanswer`
,
queryObj
,
(
datastr
)
=>
{
middleLayer
.
scale
=
canvas
.
width
/
middleLayer
.
width
;
const
data
=
JSON
.
parse
(
datastr
);
// this.showLog('middleLayer.scale = ' + middleLayer.scale);
callback
&&
callback
(
JSON
.
stringify
(
data
.
rows
));
});
});
});
}
});
}
}
callNativeFunction
(
param
)
{
reloadBundle
()
{
const
paramStr
=
JSON
.
stringify
(
param
);
const
{
sceneName
,
version
,
bondleUrl
}
=
this
.
currentBundleInfo
;
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
return
jsb
.
reflection
.
callStaticMethod
(
'
CocosMng
'
,
'
cocosWithNativeProtocol:
'
,
paramStr
);
this
.
loadBundle
(
sceneName
,
version
,
bondleUrl
);
}
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
)
{
showMask
()
{
console
.
log
(
'
汪汪汪
'
)
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
}
else
{
mask
.
active
=
true
;
console
.
error
(
'
非源生环境11
'
);
cc
.
tween
(
mask
)
}
.
set
({
opacity
:
0
})
}
.
to
(
0.5
,
{
opacity
:
0
})
.
start
();
isShowWaiting
=
false
;
}
showWaitingLetters
()
{
hideMask
()
{
if
(
this
.
isShowWaiting
)
{
const
mask
=
cc
.
find
(
'
middleLayer/mask
'
);
return
;
mask
.
stopAllActions
();
}
cc
.
tween
(
mask
)
this
.
isShowWaiting
=
true
;
.
set
({
opacity
:
0
})
.
to
(
0.5
,
{
opacity
:
0
})
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
.
call
(()
=>
{
layout
.
removeAllChildren
();
mask
.
active
=
false
;
})
const
canvas
=
cc
.
find
(
"
Canvas
"
);
.
start
();
const
bg
=
layout
.
addComponent
(
cc
.
Graphics
);
}
bg
.
fillRect
(
-
canvas
.
width
/
2
,
-
canvas
.
height
/
2
,
canvas
.
width
,
canvas
.
height
);
reWriteAir
()
{
(
<
any
>
window
).
courseware
.
getData
=
(
callback
)
=>
{
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
let
data
=
null
;
laodingLayer
.
active
=
true
;
if
(
this
.
courseItem
.
data
)
{
// const loading = cc.find('middleLayer/loadingLayer/loading');
data
=
JSON
.
parse
(
this
.
courseItem
.
data
);
// const anim = loading.getComponent(cc.Animation)
}
// anim.play('loading')
this
.
log
(
"
===成功调用getData===
"
+
this
.
courseItem
.
data
);
callback
&&
callback
(
data
);
const
script
=
cc
.
find
(
'
middleLayer/loadingLayer/progress
'
).
getComponent
(
'
progressScript
'
);
}
script
.
setProgress
(
0
);
(
<
any
>
window
).
courseware
.
nextPage
=
()
=>
{
this
.
goNextPage
();
const
id
=
setInterval
(()
=>
{
}
// console.log('changeObj.value: ', changeObj.value);
(
<
any
>
window
).
courseware
.
beforePage
=
()
=>
{
script
.
setProgress
(
changeObj
.
value
);
this
.
goPrePage
();
},
1
);
}
(
<
any
>
window
).
courseware
.
sendAnswer
=
(
answerObj
)
=>
{
const
changeObj
=
{
value
:
0
};
this
.
log
(
"
===成功调用sendAnswer===
"
+
JSON
.
stringify
(
answerObj
));
cc
.
tween
(
changeObj
)
this
.
callNetworkApiPost
(
`http://staging-teach.ireadabc.com`
,
`/api/oxford/courseware/v1/
${
this
.
courseItem
.
id
}
/saveanswer`
,
answerObj
,
(
data
)
=>
{
.
to
(
5
,
{
value
:
0.9
})
answerObj
.
callback
&&
answerObj
.
callback
(
JSON
.
stringify
(
data
.
row
));
.
call
(()
=>
{
});
clearInterval
(
id
);
}
})
(
<
any
>
window
).
courseware
.
getAnswer
=
(
queryObj
,
callback
)
=>
{
.
start
();
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
));
// const colorList = this.getRainbowColorList();
});
// const layout = cc.find('middleLayer/layout');
}
// layout.removeAllChildren();
}
// layout.active = true;
// const str = 'Now Loading...';
callNativeFunction
(
param
)
{
// str.split('').forEach((word, idx) => {
const
paramStr
=
JSON
.
stringify
(
param
);
// const node = new cc.Node();
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_IOS
)
{
// const label = node.addComponent(cc.Label);
return
jsb
.
reflection
.
callStaticMethod
(
'
CocosMng
'
,
'
cocosWithNativeProtocol:
'
,
paramStr
);
// label.string = word;
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_ANDROID
)
{
// node.parent = layout;
return
jsb
.
reflection
.
callStaticMethod
(
'
com/iplayabc/cocos/AppActivity
'
,
'
cocosWithNativeProtocol
'
,
'
(Ljava/lang/String;)Ljava/lang/String;
'
,
paramStr
);
// node.color = colorList[idx];
}
else
if
(
cc
.
sys
.
isNative
&&
cc
.
sys
.
os
==
cc
.
sys
.
OS_WINDOWS
)
{
// cc.tween(node)
console
.
log
(
'
汪汪汪
'
)
// .delay(idx / 4)
}
else
{
// .by(0.3, { y: 50 }, { easing: 'sineOut' })
console
.
error
(
'
非源生环境11
'
);
// .by(0.3, { y: -50 }, { easing: 'sineIn' })
}
// .delay((str.length - idx) / 4)
}
// .union()
// .repeatForever()
isShowWaiting
=
false
;
// .start();
showWaitingLetters
()
{
// });
// const totalWidth = layout.children.reduce((width, node, idx) => {
if
(
this
.
isShowWaiting
)
{
// return width + node.width;
return
;
// }, 0);
}
// layout.width = totalWidth;
this
.
isShowWaiting
=
true
;
}
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
layout
.
removeAllChildren
();
hideWaitingLetters
()
{
const
canvas
=
cc
.
find
(
"
Canvas
"
);
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
const
bg
=
layout
.
addComponent
(
cc
.
Graphics
);
layout
.
active
=
false
;
bg
.
fillRect
(
-
canvas
.
width
/
2
,
-
canvas
.
height
/
2
,
canvas
.
width
,
canvas
.
height
);
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
laodingLayer
.
active
=
false
;
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
}
laodingLayer
.
active
=
true
;
// const loading = cc.find('middleLayer/loadingLayer/loading');
logList
=
[];
// const anim = loading.getComponent(cc.Animation)
showLog
(
str
)
{
// anim.play('loading')
this
.
logList
.
push
(
str
);
console
.
log
(
str
);
const
script
=
cc
.
find
(
'
middleLayer/loadingLayer/progress
'
).
getComponent
(
'
progressScript
'
);
script
.
setProgress
(
0
);
if
(
this
.
logList
.
length
==
1
)
{
this
.
showOneLog
();
const
id
=
setInterval
(()
=>
{
}
// console.log('changeObj.value: ', changeObj.value);
}
script
.
setProgress
(
changeObj
.
value
);
},
1
);
showDebugUI
()
{
cc
.
find
(
'
middleLayer/ConsoleNode/BtnOpen
'
).
active
=
true
;
const
changeObj
=
{
value
:
0
};
}
cc
.
tween
(
changeObj
)
.
to
(
5
,
{
value
:
0.9
})
showOneLog
()
{
.
call
(()
=>
{
const
str
=
this
.
logList
[
0
];
clearInterval
(
id
);
if
(
str
===
undefined
)
{
})
return
;
.
start
();
}
const
node
=
new
cc
.
Node
();
node
.
anchorX
=
0.5
;
const
label
=
node
.
addComponent
(
cc
.
RichText
);
// const colorList = this.getRainbowColorList();
label
.
string
=
`<outline color=black width=3>
${
str
}
</outline>`
;
// const layout = cc.find('middleLayer/layout');
label
.
maxWidth
=
this
.
node
.
width
/
2
;
// layout.removeAllChildren();
node
.
x
=
this
.
node
.
width
/
4
;
// layout.active = true;
node
.
y
=
-
this
.
node
.
height
/
2
;
// const str = 'Now Loading...';
node
.
parent
=
this
.
node
;
// str.split('').forEach((word, idx) => {
cc
.
tween
(
node
)
// const node = new cc.Node();
.
to
(
5
,
{
y
:
this
.
node
.
height
})
// const label = node.addComponent(cc.Label);
.
removeSelf
()
// label.string = word;
.
start
();
// node.parent = layout;
setTimeout
(()
=>
{
// node.color = colorList[idx];
this
.
logList
.
shift
();
// cc.tween(node)
this
.
showOneLog
();
// .delay(idx / 4)
},
1000
);
// .by(0.3, { y: 50 }, { easing: 'sineOut' })
}
// .by(0.3, { y: -50 }, { easing: 'sineIn' })
// .delay((str.length - idx) / 4)
exit
()
{
// .union()
cc
.
game
.
removePersistRootNode
(
this
.
node
);
// .repeatForever()
cc
.
director
.
loadScene
(
"
emptyScene
"
,
()
=>
{
// .start();
this
.
callNativeFunction
({
name
:
'
exit
'
,
value
:
''
});
// });
});
// const totalWidth = layout.children.reduce((width, node, idx) => {
}
// return width + node.width;
// }, 0);
getRainbowColorList
()
{
// layout.width = totalWidth;
return
[
cc
.
color
(
255
,
255
,
0
),
}
cc
.
color
(
128
,
255
,
0
),
cc
.
color
(
0
,
255
,
0
),
hideWaitingLetters
()
{
cc
.
color
(
0
,
0
,
0
),
const
layout
=
cc
.
find
(
'
middleLayer/layout
'
);
cc
.
color
(
0
,
255
,
128
),
layout
.
active
=
false
;
cc
.
color
(
0
,
255
,
255
),
const
laodingLayer
=
cc
.
find
(
'
middleLayer/loadingLayer
'
);
cc
.
color
(
0
,
128
,
255
),
laodingLayer
.
active
=
false
;
cc
.
color
(
0
,
0
,
255
),
}
cc
.
color
(
128
,
0
,
255
),
cc
.
color
(
255
,
0
,
255
),
logList
=
[];
cc
.
color
(
255
,
0
,
128
),
showLog
(
str
)
{
this
.
logList
.
push
(
str
);
cc
.
color
(
255
,
0
,
0
),
console
.
log
(
str
);
cc
.
color
(
255
,
128
,
0
),
cc
.
color
(
255
,
255
,
0
),
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
),
];
}
}
}
assets/middleLayer_for_debug/script/middleLayer2.js
deleted
100644 → 0
View file @
5c583207
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
.
setRequestHeader
(
'
Access-Control-Request-Private-Network
'
,
true
);
xhr
.
send
();
},
// 需要预加载的数量
preloadCount
:
null
,
// 统计已加载的数量
loadedCount
:
null
,
// 统一释放异步资源的方法
onLoad
()
{
this
.
preloadCount
=
0
;
this
.
loadedCount
=
0
;
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
,
)
uiNode
.
scale
=
scale
;
initAir
(
this
);
// this.preloadAll();
this
.
role
=
'
student
'
;
},
getBaseUrl
(
callback
)
{
if
(
window
.
air
.
engineInfo
)
{
const
{
isDev
}
=
JSON
.
parse
(
window
.
air
.
engineInfo
);
if
(
isDev
==
1
)
{
callback
(
'
https://staging-teach.ireadabc.com
'
);
}
else
{
callback
(
'
https://iteachabc.com
'
);
}
}
else
{
window
.
courseware
.
getEngineInfo
(()
=>
{
const
{
isDev
}
=
JSON
.
parse
(
window
.
air
.
engineInfo
);
if
(
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
;
},
onHomeworkFinish
(
callBack
,
data
=
null
)
{
console
.
log
(
'
this.courseIndex =
'
+
JSON
.
stringify
(
this
.
currentBundleInfo
));
if
(
this
.
currentBundleInfo
.
sceneName
==
'
ls_fly
'
)
{
const
rightCount
=
data
.
reduce
((
preValue
,
right
)
=>
{
if
(
right
)
{
return
preValue
+
1
;
}
else
{
return
preValue
;
}
},
0
);
console
.
log
(
'
rightCount =
'
+
rightCount
);
}
this
.
showRestartBtn
();
console
.
log
(
'
onHomeworkFinish:
'
+
JSON
.
stringify
(
data
));
},
showRestartBtn
()
{
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
btnRestart
.
active
=
true
;
btnRestart
.
once
(
'
click
'
,
()
=>
{
btnRestart
.
active
=
false
;
this
.
loadPageBundle
();
});
},
callMiddleLayerFunction
(
apiName
,
data
,
callback
)
{
switch
(
apiName
)
{
case
'
NS_login
'
:
if
(
data
.
userName
==
'
admin
'
&&
data
.
password
==
'
123456
'
)
{
this
.
showLog
(
'
登录成功!
'
);
callback
(
'
登录成功!
'
);
}
else
{
this
.
showLog
(
'
密码错误!
'
);
callback
(
'
密码错误!
'
);
}
break
;
case
'
NS_logout
'
:
this
.
showLog
(
'
登出成功!
'
);
callback
(
'
登出成功!
'
);
break
;
case
'
NS_select_book
'
:
if
(
data
.
bookId
==
10001
)
{
this
.
showLog
(
'
选择剧本:
'
+
data
.
bookId
);
callback
(
'
选择剧本:
'
+
data
.
bookId
);
}
else
{
this
.
showLog
(
'
剧本未解锁!
'
);
callback
(
'
剧本未解锁!
'
);
}
break
;
case
'
NS_select_stage
'
:
if
(
data
.
stageId
==
10011
)
{
this
.
showLog
(
'
选择关卡:
'
+
data
.
stageId
);
callback
(
'
选择关卡:
'
+
data
.
stageId
);
}
else
{
this
.
showLog
(
'
关卡未解锁!
'
);
callback
(
'
关卡未解锁!
'
);
}
break
;
case
'
NS_select_event
'
:
this
.
showLog
(
'
选择活动:
'
+
data
.
eventId
);
callback
(
'
选择活动:
'
+
data
.
eventId
);
break
;
case
'
NS_select_game
'
:
this
.
showLog
(
'
选择游戏:
'
+
data
.
gameId
);
callback
(
'
选择游戏:
'
+
data
.
gameId
);
break
;
case
'
PSQS_get_pass_code
'
:
this
.
showLog
(
'
获取验证码:
'
+
data
.
phone
);
callback
({
success
:
true
});
break
;
case
'
PSQS_login
'
:
this
.
showLog
(
`登录/注册:
${
data
.
phone
}
${
data
.
code
}
`
);
callback
({
success
:
true
,
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
phone
:
13812345678
,
nickName
:
"
小豆梓
"
,
sex
:
"
girl
"
,
provice
:
"
辽宁省
"
,
city
:
"
大连市
"
,
age
:
'
5~8岁
'
,
grade
:
'
一年级
'
},
bookInfo
:
[{
name
:
"
kind_A
"
,
selected
:
true
,
bookList
:
[{
id
:
12334
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
rate
:
"
55%
"
,
createDate
:
"
2012-12-21
"
},
{
id
:
12231
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
readTime
:
2
,
createDate
:
"
2012-12-21
"
}],
},
{
name
:
"
kind_B
"
,
bookList
:
[{
id
:
12235
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
readTime
:
1
,
createDate
:
"
2012-12-21
"
}],
}]
});
break
;
case
'
PSQS_set_user_info
'
:
this
.
showLog
(
`设置用户信息:
${
JSON
.
stringify
(
data
)}
`
);
callback
({
success
:
true
});
break
;
case
'
PSQS_scan_code
'
:
this
.
showLog
(
`扫码`
);
callback
({
success
:
true
,
bookInfo
:
[{
name
:
"
kind_A
"
,
selected
:
true
,
bookList
:
[{
id
:
12334
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
rate
:
"
0%
"
,
createDate
:
"
2012-12-21
"
}],
},
{
name
:
"
kind_B
"
,
bookList
:
[],
}]
});
break
;
case
'
PSQS_read_book
'
:
this
.
showLog
(
'
进入课件:
'
+
data
.
bookId
);
callback
({
success
:
true
});
break
;
case
'
PSQS_get_basic_info
'
:
this
.
showLog
(
'
获取基本信息
'
);
callback
({
version
:
'
bata 0.9.7
'
,
privacyPolicyUrl
:
'
http://www.baidu.com
'
,
userAgreement
:
'
http://www.baidu.com
'
,
});
break
;
case
'
PSQS_play_animate_over
'
:
break
;
case
'
PSQS_jump_to_question
'
:
break
;
case
'
PSQS_get_course_info
'
:
this
.
showLog
(
'
获取播放骨骼动画模板的信息
'
);
const
returnData
=
{
first
:
false
,
// 是不是第一个模板
last
:
false
,
// 是不是最后一个模板
playTime
:
0
,
// 播放了几次 0:不需要跳题 1:需要跳题
saveData
:
{}
}
callback
(
returnData
);
break
;
case
'
PSQS_show_rabbit
'
:
break
;
case
'
PSQS_hide_rabbit
'
:
break
;
case
'
PSQS_logout
'
:
callback
({
success
:
true
});
break
;
case
'
PSQS_get_province
'
:
callback
([
'
北京
'
,
'
上海
'
]);
break
;
case
'
PSQS_get_city
'
:
callback
([
'
北京市
'
]);
break
;
case
'
PSQS_check_login
'
:
callback
({
success
:
true
,
userInfo
:
{
// userInfo为空时弹出填写用户信息的页面
phone
:
13812345678
,
nickName
:
"
小豆梓
"
,
sex
:
"
girl
"
,
provice
:
"
辽宁省
"
,
city
:
"
大连市
"
,
age
:
'
5~8岁
'
,
grade
:
'
一年级
'
},
bookInfo
:
[{
name
:
"
kind_A
"
,
bookList
:
[{
id
:
12334
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
rate
:
"
55%
"
,
createDate
:
"
2012-12-21
"
},
{
id
:
12231
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
readTime
:
2
,
createDate
:
"
2012-12-21
"
}],
},
{
name
:
"
kind_B
"
,
selected
:
true
,
bookList
:
[{
id
:
12235
,
coverImg
:
"
http://staging-teach.cdn.ireadabc.com/0d332cb2b167feb4204b1d77a6f02ed6.jpg
"
,
duration
:
"
21:33
"
,
readTime
:
1
,
createDate
:
"
2012-12-21
"
}],
}]
});
break
;
default
:
this
.
showLog
(
'
未定义接口:
'
+
apiName
);
break
;
}
},
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
();
const
flag
=
cc
.
director
.
loadScene
(
"
debug_shell
"
,
null
,
null
,
(
err
,
scene
)
=>
{
});
if
(
!
flag
)
{
// 没有壳的情况下,直接加载中间层场景
cc
.
director
.
loadScene
(
"
middleLayer_for_debug
"
,
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
(
res
)
this
.
log
(
'
------------------------------
'
);
this
.
log
(
`录音的文本是
${
JSON
.
parse
(
res
).
text
}
`
);
this
.
log
(
`录音的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
});
});
cc
.
find
(
'
middleLayer/ui/BtnScanCode
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
startScanCode
((
res
)
=>
{
this
.
showLog
(
res
);
});
});
cc
.
find
(
'
middleLayer/ui/BtnNeedUpdate
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
needUpdate
(
'
检测到更新:
'
,
'
http://www.baidu.com
'
,
(
res
)
=>
{
this
.
showLog
(
res
);
});
});
cc
.
find
(
'
middleLayer/ui/BtnOpenTest
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
startTest
(
'
apple
'
);
});
cc
.
find
(
'
middleLayer/ui/BtnCloseTest
'
).
on
(
'
click
'
,
()
=>
{
window
.
courseware
.
stopTest
(
res
=>
{
this
.
log
(
'
--------录音评测返回结果 stopTest ---------
'
);
this
.
log
(
res
)
this
.
log
(
'
------------------------------
'
);
this
.
log
(
`录音apple的评分是
${
JSON
.
parse
(
res
).
result
.
overall
}
`
);
this
.
log
(
`录音apple的音频URL是
${
JSON
.
parse
(
res
).
audioUrl
}
`
);
});
});
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
'
,
()
=>
{
// 测试获取设备信息
window
.
courseware
.
getEngineInfo
(
res
=>
{
this
.
log
(
'
--------getEngineInfo返回结果---------
'
);
this
.
log
(
res
)
this
.
log
(
'
------------------------------
'
);
});
// 测试预加载资源
// 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
)
=>
{
const
btnRestart
=
cc
.
find
(
'
middleLayer/BtnRestart
'
);
btnRestart
.
active
=
false
;
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
(
'
非源生环境11
'
);
}
},
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
),
];
}
});
assets/middleLayer_for_debug/script/middleLayer2.js.meta
deleted
100644 → 0
View file @
5c583207
{
"ver": "1.0.8",
"uuid": "971c9f08-044e-439b-8d32-e6b76be34717",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
assets/middleLayer_for_debug/script/middleLayerBase.ts
View file @
d75d942f
export
class
middleLayerBase
extends
cc
.
Component
{
export
class
middleLayerBase
extends
cc
.
Component
{
callNetworkApiPost
(
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
(
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
();
});
}
async
getBaseUrl
(
callback
)
{
const
engineInfo
=
await
this
.
getEngineInfo
();
const
{
isDev
}
=
JSON
.
parse
(
engineInfo
);
if
(
isDev
==
1
)
{
callback
(
'
http://staging-openapi.iteachabc.com
'
);
}
else
{
callback
(
'
http://openapi.iteachabc.com
'
);
}
}
getEngineInfo
()
{
if
((
<
any
>
window
).
air
.
engineInfo
)
{
return
(
<
any
>
window
).
air
.
engineInfo
;
}
else
{
return
new
Promise
((
resolve
,
reject
)
=>
{
(
<
any
>
window
).
courseware
.
getEngineInfo
(()
=>
{
resolve
((
<
any
>
window
).
air
.
engineInfo
);
});
});
}
}
asyncCallNetworkApiGet
(
apiName
,
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
callNetworkApiGet
(
apiName
,
data
,
(
res
=>
{
resolve
(
res
);
}));
});
}
asyncCallNetworkApiPost
(
uri
,
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
callNetworkApiPost
(
uri
,
data
,
(
res
)
=>
{
resolve
(
res
);
});
});
}
}
}
\ No newline at end of file
creator.d.ts
View file @
d75d942f
declare
const
global
:
any
=
{};
/** !#en
/** !#en
The main namespace of Cocos2d-JS, all engine core classes, functions, properties and constants are defined in this namespace.
The main namespace of Cocos2d-JS, all engine core classes, functions, properties and constants are defined in this namespace.
!#zh
!#zh
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