Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
NJ_MoreGames_CourseList
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
NJ_MoreGames_CourseList
Commits
1c664a11
Commit
1c664a11
authored
Jul 05, 2022
by
liujiangnan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:
parent
176641f3
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
185 additions
and
22 deletions
+185
-22
NJ_MoreGames_CourseList.fire
...J_MoreGames_CourseList/scene/NJ_MoreGames_CourseList.fire
+5
-15
NJ_MoreGames_CourseList.ts
.../NJ_MoreGames_CourseList/scene/NJ_MoreGames_CourseList.ts
+57
-7
util.ts
assets/NJ_MoreGames_CourseList/script/util.ts
+123
-0
No files found.
assets/NJ_MoreGames_CourseList/scene/NJ_MoreGames_CourseList.fire
View file @
1c664a11
...
...
@@ -560,9 +560,7 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
},
"_spriteFrame": null,
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
...
...
@@ -844,9 +842,7 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
},
"_spriteFrame": null,
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
...
...
@@ -1128,9 +1124,7 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
},
"_spriteFrame": null,
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
...
...
@@ -1412,9 +1406,7 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
},
"_spriteFrame": null,
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
...
...
@@ -1696,9 +1688,7 @@
],
"_srcBlendFactor": 770,
"_dstBlendFactor": 771,
"_spriteFrame": {
"__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061"
},
"_spriteFrame": null,
"_type": 0,
"_sizeMode": 0,
"_fillType": 0,
...
...
assets/NJ_MoreGames_CourseList/scene/NJ_MoreGames_CourseList.ts
View file @
1c664a11
import
{
async
Delay
,
onHomeworkFinish
}
from
"
../script/util
"
;
import
{
async
CallNetworkApiGet
,
buttonOnClick
,
asyncGetSpriteFrimeByUrl
,
jumpToCourseWare
}
from
"
../script/util
"
;
import
{
MyCocosSceneComponent
}
from
"
../script/MyCocosSceneComponent
"
;
const
{
ccclass
,
property
}
=
cc
.
_decorator
;
...
...
@@ -17,14 +17,46 @@ export default class SceneComponent extends MyCocosSceneComponent {
}
async
onLoadEnd
()
{
// TODO 加载完成后的逻辑写在这里, 下面的代码仅供参考
this
.
initView
();
this
.
initBg
();
await
this
.
initView
();
this
.
initListener
();
}
rows
:
any
;
level
:
any
;
async
initView
()
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
!
middleLayer
)
{
const
levelNode
=
cc
.
find
(
`Canvas/L1`
);
levelNode
.
active
=
true
;
this
.
level
=
'
L1
'
;
return
;
}
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
const
folderId
=
middleLayerComponent
.
getData
(
'
NJ_MoreGames_CourseList
'
).
folderId
;
console
.
log
(
'
folderId =
'
+
folderId
);
const
level
=
middleLayerComponent
.
getData
(
'
NJ_MoreGames
'
).
Level
||
'
L1
'
;
this
.
level
=
level
;
initView
()
{
this
.
initBg
();
const
levelNode
=
cc
.
find
(
`Canvas/
${
level
}
`
);
levelNode
.
active
=
true
;
const
resStr
=
await
asyncCallNetworkApiGet
(
'
/api/syllabus/v1/list
'
,
{
pid
:
folderId
});
const
res
=
JSON
.
parse
(
resStr
);
this
.
rows
=
res
.
rows
;
for
(
let
i
=
1
;
i
<=
5
;
i
++
)
{
const
row
=
this
.
rows
[
i
-
1
];
if
(
!
row
)
{
continue
;
}
const
item
=
cc
.
find
(
`item
${
i
}
`
,
levelNode
);
item
.
attr
({
syllabusId
:
row
.
id
});
const
coverFrame
:
any
=
await
asyncGetSpriteFrimeByUrl
(
row
.
cover
);
cc
.
find
(
`cover`
,
item
).
getComponent
(
cc
.
Sprite
).
spriteFrame
=
coverFrame
;
}
}
initBg
()
{
...
...
@@ -36,8 +68,26 @@ export default class SceneComponent extends MyCocosSceneComponent {
bg3
.
scale
=
this
.
_mapScaleMax
;
}
initListener
()
{
const
levelNode
=
cc
.
find
(
`Canvas/
${
this
.
level
}
`
);
for
(
let
i
=
1
;
i
<=
5
;
i
++
)
{
const
item
=
cc
.
find
(
`item
${
i
}
`
,
levelNode
);
buttonOnClick
(
item
,
()
=>
{
const
syllabusId
=
item
[
"
syllabusId
"
];
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
!
middleLayer
)
{
return
;
}
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
if
(
!
syllabusId
)
{
middleLayerComponent
.
showTips
(
"
未解锁 [101]
"
);
return
;
}
middleLayerComponent
.
setData
(
'
NJ_MoreGames_CourseList
'
,
{
syllabusId
,
});
jumpToCourseWare
(
syllabusId
);
});
}
}
}
assets/NJ_MoreGames_CourseList/script/util.ts
View file @
1c664a11
...
...
@@ -143,6 +143,19 @@ export function getSpriteFrimeByUrl(url, cb) {
})
}
export
function
asyncGetSpriteFrimeByUrl
(
url
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cc
.
loader
.
load
({
url
},
(
err
,
img
)
=>
{
if
(
err
)
{
reject
(
err
);
return
;
}
const
spriteFrame
=
new
cc
.
SpriteFrame
(
img
);
resolve
(
spriteFrame
);
})
});
}
export
function
getSprNode
(
resName
)
{
const
sf
=
cc
.
find
(
'
Canvas/res/img/
'
+
resName
).
getComponent
(
cc
.
Sprite
).
spriteFrame
;
const
node
=
new
cc
.
Node
();
...
...
@@ -464,3 +477,113 @@ export function callMiddleLayerFunction(apiName: string, data: any, callback: Fu
}
}
export
function
onHomeworkFinish
()
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
middleLayer
)
{
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
if
(
middleLayerComponent
.
role
==
'
student
'
)
{
middleLayerComponent
.
onHomeworkFinish
(()
=>
{
});
}
}
else
{
console
.
log
(
'
onHomeworkFinish
'
);
}
}
export
function
asyncCallNetworkApiGet
(
apiName
,
data
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
callNetworkApiGet
(
apiName
,
data
,
(
res
=>
{
resolve
(
res
);
}));
});
}
export
function
asyncCallNetworkApiPost
(
uri
,
data
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
callNetworkApiPost
(
uri
,
data
,
(
res
)
=>
{
resolve
(
res
);
});
});
}
export
function
callNetworkApiPost
(
uri
,
data
,
callBack
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
)?.
getComponent
(
'
middleLayer
'
);
if
(
middleLayer
)
{
middleLayer
.
callNetworkApiPost
(
uri
,
data
,
callBack
);
return
;
}
const
baseUrl
=
'
http://staging-openapi.iteachabc.com
'
;
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
));
}
export
function
callNetworkApiGet
(
uri
,
data
,
callBack
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
)?.
getComponent
(
'
middleLayer
'
);
if
(
middleLayer
)
{
middleLayer
.
callNetworkApiGet
(
uri
,
data
,
callBack
);
return
;
}
const
baseUrl
=
'
http://staging-openapi.iteachabc.com
'
;
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
();
}
export
function
jumpToBundle
(
bundleName
:
string
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
middleLayer
)
{
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
middleLayerComponent
.
loadOnlineBundle
(
bundleName
);
}
else
{
console
.
log
(
'
jump to bundle:
'
+
bundleName
);
}
}
export
function
jumpToCourseWare
(
courseWareId
:
number
)
{
const
middleLayer
=
cc
.
find
(
'
middleLayer
'
);
if
(
middleLayer
)
{
const
middleLayerComponent
=
middleLayer
.
getComponent
(
'
middleLayer
'
);
middleLayerComponent
.
loadOnlineCourseWare
(
courseWareId
);
}
else
{
console
.
log
(
'
jump to CourseWare:
'
+
courseWareId
);
}
}
export
function
buttonOnClick
(
button
:
cc
.
Node
,
callback
:
Function
,
scale
=
1.0
)
{
button
.
on
(
'
click
'
,
()
=>
{
if
(
button
[
'
cantClick
'
])
{
return
;
}
button
[
'
cantClick
'
]
=
true
;
cc
.
tween
(
button
)
.
to
(
0.1
,
{
scale
:
scale
*
1.1
})
.
to
(
0.1
,
{
scale
:
scale
})
.
call
(()
=>
{
button
[
'
cantClick
'
]
=
false
;
callback
&&
callback
();
})
.
start
();
});
}
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