|
@@ -16,6 +16,17 @@ export class ComVal {
|
|
|
* stores 合集对象
|
|
|
*/
|
|
|
public storesObj : any = null;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 追加自定义的帧事件
|
|
|
+ */
|
|
|
+ public fpsEvent : any = [
|
|
|
+ // {
|
|
|
+ // "code" : "自定义code,后续用于删除指定的code",
|
|
|
+ // "myDb" : "自定义的回调的数据",
|
|
|
+ // "callback" : "自定义回调的方法",
|
|
|
+ // }
|
|
|
+ ];
|
|
|
|
|
|
static instance: any;
|
|
|
|
|
@@ -57,9 +68,125 @@ export class ComVal {
|
|
|
}
|
|
|
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 该方法每帧会被执行
|
|
|
+ * 用于处理自定义的 this.fpsEvent json列表
|
|
|
+ */
|
|
|
+ fpsEventMain = () => {
|
|
|
+
|
|
|
+ var thisTime = new Date().getTime();
|
|
|
+
|
|
|
+ for (let i = 0; i < this.fpsEvent.length; i++) {
|
|
|
+
|
|
|
+ let obj = this.fpsEvent[i];
|
|
|
+ let code = obj["code"];
|
|
|
+ let myDb = obj["myDb"];
|
|
|
+ let time = obj["time"];
|
|
|
+ let timeEnd = obj["timeEnd"];
|
|
|
+ let callback = obj["callback"];
|
|
|
+
|
|
|
+ // 是否触发回调
|
|
|
+ let callbackBool = false;
|
|
|
+
|
|
|
+ if (time == null || time == undefined) {
|
|
|
+ callbackBool = true;
|
|
|
+ } else {
|
|
|
+
|
|
|
+ let timeNew = parseFloat(time);
|
|
|
+ if (thisTime - timeEnd >= timeNew) {
|
|
|
+ callbackBool = true;
|
|
|
+ this.fpsEvent[i]["timeEnd"] = thisTime;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if (callbackBool == true) {
|
|
|
+ callback({
|
|
|
+ "code" : code,
|
|
|
+ "myDb" : myDb,
|
|
|
+ "time" : time,
|
|
|
+ "timeEnd" : timeEnd
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return this;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 新增一个自定义的帧事件
|
|
|
+ * code 自定义的唯一code值
|
|
|
+ * myDb 自定义回调的数据,可以是字符串,也可以是json对象等方式
|
|
|
+ * time 间隔多少毫秒执行一次,如果传null则为每帧执行
|
|
|
+ * callback 自定义的回调方法
|
|
|
+ *
|
|
|
+ * ########## 使用案例 ##########
|
|
|
+ *
|
|
|
+ * // 每帧执行案例
|
|
|
+ * ComVal.find().fpsEventAdd(
|
|
|
+ * "code111", "自定义返回111", null, function(fpsEventAddRet) {
|
|
|
+ * console.log(
|
|
|
+ * "fpsEventAddRet", fpsEventAddRet
|
|
|
+ * );
|
|
|
+ * }
|
|
|
+ * );
|
|
|
+ *
|
|
|
+ * // 每次2秒执行案例
|
|
|
+ * ComVal.find().fpsEventAdd(
|
|
|
+ * "code222", "自定义返回222", 2000, function(fpsEventAddRet) {
|
|
|
+ * console.log(
|
|
|
+ * "fpsEventAddRet", fpsEventAddRet
|
|
|
+ * );
|
|
|
+ *
|
|
|
+ * // 删除释放帧事件
|
|
|
+ * ComVal.find().fpsEventDel(fpsEventAddRet.code);
|
|
|
+ *
|
|
|
+ * }
|
|
|
+ * );
|
|
|
+ *
|
|
|
+ */
|
|
|
+ fpsEventAdd = (code : any, myDb : any, time : any, callback : any) => {
|
|
|
+
|
|
|
+ var thisTime = new Date().getTime();
|
|
|
+
|
|
|
+ let addJson : any = {
|
|
|
+ "code" : code,
|
|
|
+ "myDb" : myDb,
|
|
|
+ "time" : time,
|
|
|
+ // 记录最后一次执行的时间戳, 与 time 配合执行
|
|
|
+ "timeEnd" : thisTime,
|
|
|
+ "callback" : callback,
|
|
|
+ }
|
|
|
+
|
|
|
+ this.fpsEvent.push(addJson);
|
|
|
+
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除自定义回调帧事件
|
|
|
+ * objCode 自定义的 this.fpsEvent 唯一code值
|
|
|
+ */
|
|
|
+ fpsEventDel = (objCode : any) => {
|
|
|
+
|
|
|
+ for (let i = 0; i < this.fpsEvent.length; i++) {
|
|
|
+ let obj = this.fpsEvent[i];
|
|
|
+ let code = obj["code"];
|
|
|
+ if (code == objCode) {
|
|
|
+ this.fpsEvent.splice(i, 1);
|
|
|
+ // return this;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
}
|