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
b0d768b7
Commit
b0d768b7
authored
Dec 04, 2021
by
liujiangnan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 预加载
parent
19e7ac6e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
119 additions
and
29 deletions
+119
-29
middleLayer.js
assets/middleLayer_for_debug/script/middleLayer.js
+119
-29
No files found.
assets/middleLayer_for_debug/script/middleLayer.js
View file @
b0d768b7
...
...
@@ -4,10 +4,6 @@ cc.Class({
extends
:
cc
.
Component
,
properties
:
{},
onLoad
()
{
initAir
(
this
);
},
callNetworkApiPost
(
uri
,
data
,
callBack
)
{
const
xhr
=
new
XMLHttpRequest
();
const
url
=
`
${
this
.
baseUrl
}${
uri
}
`
;
...
...
@@ -21,6 +17,33 @@ cc.Class({
xhr
.
send
(
JSON
.
stringify
(
data
));
},
callNetworkApiGet
(
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
();
},
onLoad
()
{
initAir
(
this
);
this
.
preloadBundle
();
this
.
preloadSource
();
},
start
()
{
this
.
node
.
zIndex
=
9999
;
cc
.
game
.
addPersistRootNode
(
this
.
node
);
...
...
@@ -50,33 +73,93 @@ cc.Class({
middleLayer
.
log
(
"
middleLayer.log('像这样在这里打log')
"
);
},
asyncDelayLog
(
str
)
{
console
.
log
(
str
);
return
new
Promise
((
resolve
,
reject
)
=>
{
// 需要预加载的数量
preloadCount
:
0
,
// 统计已加载的数量
loadedCount
:
0
,
preloadBundle
()
{
if
(
window
.
air
.
bundleLoaded
){
// 限制只加载一次
return
;
}
window
.
air
.
bundleLoaded
=
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
:
507
,
platform
},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
if
(
data
.
rows
&&
data
.
rows
.
length
>
0
){
this
.
preloadCount
+=
data
.
rows
.
length
;
this
.
batchPreloadScene
(
data
.
rows
);
}
});
},
batchPreloadScene
(
scenes
)
{
const
_this
=
this
;
let
i
=
0
;
const
load
=
function
(){
const
scene
=
scenes
[
i
];
cc
.
assetManager
.
loadBundle
(
scene
.
bondleUrl
,
{
version
:
scene
.
version
},
(
err
,
bundle
)
=>
{
console
.
log
(
`
${
scene
.
bondleUrl
}
---场景开始loadBundle----`
);
bundle
.
preloadScene
(
scene
.
sceneName
,
()
=>
{},
()
=>
{
console
.
log
(
`
${
scene
.
sceneName
}
场景预加载结束`
);
_this
.
loadedCount
++
;
i
++
;
if
(
i
<
scenes
.
length
){
setTimeout
(()
=>
{
resolve
();
load
();
},
1
);
}
});
});
}
if
(
scenes
&&
scenes
.
length
>
0
){
load
();
}
},
callNetworkApiGet
(
baseUrl
,
uri
,
data
,
callBack
)
{
let
queryStr
=
'
?
'
;
for
(
const
key
in
data
)
{
if
(
Object
.
hasOwnProperty
.
call
(
data
,
key
))
{
const
value
=
data
[
key
];
queryStr
+=
`
${
key
}
=
${
value
}
`
;
preloadSource
()
{
if
(
window
.
air
.
sourceLoaded
){
// 限制只加载一次
return
;
}
window
.
air
.
sourceLoaded
=
true
;
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/syllabus/v1/allresources`
,
{
orgid
:
507
},
(
datastr
)
=>
{
const
data
=
JSON
.
parse
(
datastr
);
const
rows
=
data
.
rows
;
if
(
rows
&&
rows
.
length
>
0
){
this
.
preloadCount
+=
rows
.
length
;
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
)
}
const
xhr
=
new
XMLHttpRequest
();
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
==
4
&&
(
xhr
.
status
>=
200
&&
xhr
.
status
<
400
))
{
callBack
(
xhr
.
responseText
);
this
.
loadedCount
++
;
if
(
i
===
len
-
1
)
{
batchLoad
();
}
};
const
url
=
`
${
baseUrl
}${
uri
}${
queryStr
}
`
;
console
.
log
(
'
url =
'
+
url
);
xhr
.
open
(
'
GET
'
,
url
,
true
);
xhr
.
send
();
});
}
}
batchLoad
();
}
});
},
asyncDelayLog
(
str
)
{
console
.
log
(
str
);
return
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(()
=>
{
resolve
();
},
1
);
});
},
initListener
()
{
...
...
@@ -227,17 +310,24 @@ cc.Class({
courses
:
null
,
courseIndex
:
0
,
courseItem
:
null
,
loadOnlineCourseWare
(
courseId
)
{
this
.
callNetworkApiGet
(
`http://staging-teach.ireadabc.com`
,
`/api/courseware/v1/
${
courseId
}
/list`
,
{},
(
datastr
)
=>
{
loadOnlineCourseWare
(
courseId
,
linkFlag
)
{
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
=
0
;
this
.
courseItem
=
data
.
rows
[
0
];
this
.
courseIndex
=
data
.
index
||
0
;
this
.
courseItem
=
data
.
rows
[
this
.
courseIndex
];
}
if
(
this
.
courses
&&
this
.
courses
.
length
>
1
){
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
=
true
;
}
this
.
reWriteAir
();
this
.
loadPageBundle
();
});
...
...
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