介绍
今天我在尝试发布web端的时候,发现场景切换太过缓慢。之后想起场景预加载:
cc.director.preloadScene(sceneName,finishCallback)
于是乎我在初始场景一连预加载了很多个场景。
代码就变成了这样:
cc.director.preloadScene(sceneName1,function(){
cc.director.preloadScene(sceneName2,function(){
cc.director.preloadScene(sceneName3,function(){
cc.director.preloadScene(sceneName4,function(){
finish()
})
})
})
})
我是一万个不愿意的,稍稍琢磨,写出了这个粗糙的脚本。以应对多异步加载的情况。
使用方法
let tsr1 = TaskScheduler.createBlockedQuene(
[
function(){
setTimeout(function(){
cc.log('1')
tsr1.taskFinish()
},1200)},
function(){
setTimeout(function(){
cc.log('2')
tsr1.taskFinish()
},1100)},
function(){
setTimeout(function(){
cc.log('3')
tsr1.taskFinish()
},1000)},
function(){
setTimeout(function(){
cc.log('4')
tsr1.taskFinish()
},1400)}
],
function(){
cc.log('tsr1 finish')
})
tsr1.setProgressCallback(function(taskCount){
cc.log('tsr1:'+taskCount)
})
##脚本文件及范例
https://github.com/LittleMoi/TaskSchedulerExample
##已知问题
- 作为插件在构建时报错。(手动转义为ES5,已解决)