目录结构调整

This commit is contained in:
2026-02-04 23:47:45 +08:00
parent 6938c911c3
commit 6b22238c6e
8780 changed files with 15333 additions and 574 deletions

View File

@@ -0,0 +1,135 @@
/*=============== cls_flowMgr2: 流程管理类 ===============
注意:
1子游戏开发人员不能修改该文件。
=========================================================*/
var cls_flowMgr2 = {
//创建实例
new: function(){
object = {};
//流程库
object.lib = [];
//流程配置
object.steplist = [];
//当前流程即steplist的数组下标
object.idx = -1;
object.method = {};
//在流程库中添加一个流程
object.method.addflow = function(id, name, func_start, func_over, time, flag1, flag2){
/*参数说明:
id : 流程id必须唯一
name : 流程名,主要起到说明和备注的作用
func_start: 进入该流程时执行的函数(先完成本流程的开始处理再根据time开启定时器)
func_over : 该流程结束时执行的函数(先完成本流程的结束处理,再进入下一流程)
time : 进入该流程后开启的定时器(自动触发func_over结束该流程)时长,毫秒
-1: 不需要开启定时器需要用户触发func_over结束流程
0: 不需要开启定时器执行完func_start后立即执行func_over结束流程
>0: 需要开启定时器定时器自动触发func_over结束流程
flag1: 进入流程时执行完func_start后是否由子游戏开启本流程的定时器默认为0
0: 由流程管理对象管理
1: 由子游戏管理
flag2: 结束流程时执行完func_over后是否由子游戏关闭定时器并进入下一流程默认为0
0: 由流程管理对象管理
1: 由子游戏管理*/
return cls_flowMgr2.addflow(object, id, name, func_start, func_over, time, flag1, flag2);
}
//设置流程。参数steplist为流程配置是一个流程id数组如[2,1,1,3,2,4]
object.method.set = function(steplist){
object.steplist = steplist;
}
//获取当前流程
object.method.currflow = function(){
cls_flowMgr2.currflow(object);
}
//开始按流程配置执行
object.method.startflow = function(){
cls_flowMgr2.startflow(object);
}
//进入下一流程
object.method.nextflow = function(){
cls_flowMgr2.nextflow(object);
}
return object;
},
//在流程库中添加一个流程
addflow: function(o_flowMgr, id, name, func_start, func_over, time, flag1, flag2){
var o_flow = {};
o_flow.id = id; //流程id
o_flow.name = name; //流程名
o_flow.func_start = func_start; //进入该流程是执行的函数
o_flow.func_over = func_over; //该流程结束时执行的函数
o_flow.time = time; //进入该流程后开启的定时器时长
o_flow.flag1 = flag1;
o_flow.flag2 = flag2;
o_flow.timer = null; //定时器id
o_flowMgr.lib.push(o_flow);
return o_flow;
},
//获取当前流程
currflow: function(o_flowMgr){
if (!o_flowMgr.steplist || o_flowMgr.steplist.length == 0){
return null;
}
if (o_flowMgr.idx == -1 || o_flowMgr.idx >= o_flowMgr.steplist.length){
return null;
}
var flowid = o_flowMgr.steplist[o_flowMgr.idx];
var flowidx = min_ary_indexof(o_flowMgr.lib, flowid, "id");
if (flowidx == -1){
return null;
}
return o_flowMgr.lib[flowidx];
},
//开始按流程配置执行程序
startflow: function(o_flowMgr){
if (o_flowMgr.lib.length == 0){
return;
}
if (o_flowMgr.steplist.length == 0){
return;
}
o_flowMgr.idx = 0;
this.exec(o_flowMgr);
},
//进入下一流程
nextflow: function(o_flowMgr){
var o_flow = this.currflow(o_flowMgr);
if (o_flow){
if (o_flow.func_over) {
o_flow.func_over();
}
if (!o_flow.flag2){
if (o_flow.timer){
clearTimeout(o_flow.timer);
o_flow.timer = null;
}
}
}
o_flowMgr.idx = o_flowMgr.idx + 1;
this.exec(o_flowMgr);
},
//执行当前流程
exec: function(o_flowMgr){
var o_flow = this.currflow(o_flowMgr);
if (!o_flow){
return;
}
if (!o_flow.func_start){
return;
}
o_flow.func_start();
if (o_flow.time == 0) {
this.nextflow(o_flowMgr);
} else if (o_flow.time > 0) {
//需要开启定时器
if (!o_flow.flag1) {
if (o_flow.func_over) {
o_flow.timer = setTimeout(o_flow.func_over, o_flow.time);
}
}
}
}
}