فهرست منبع

[FC] 提交初版LoadResUtil,LogUtil

fengcong 5 سال پیش
والد
کامیت
b1f142c974
2فایلهای تغییر یافته به همراه200 افزوده شده و 0 حذف شده
  1. 106 0
      mk_framework/assets/script/mk/utils/LoadResUtil.ts
  2. 94 0
      mk_framework/assets/script/mk/utils/LogUtil.ts

+ 106 - 0
mk_framework/assets/script/mk/utils/LoadResUtil.ts

@@ -0,0 +1,106 @@
+/**加载资源工具类
+ * @description 
+ * @author 冯聪
+ */
+export default class LoadResUtil {
+    
+    /**
+     * 日志标签
+     * @description 
+     */
+    private static _logTag = "[LoadResUtil]";
+
+    /**
+     * 加载本地图片资源
+     * @description
+     * @param          url           资源加载路径
+     * @returns                      类型 Promise<any> 
+     */
+    public static loadLoaclSprite(url: string) {
+        return new Promise((resolve, reject) => {
+            cc.loader.loadRes(`${url}`, cc.SpriteFrame, (err, spr) => {
+                if (err) {
+                    reject(err);
+                }
+                resolve(spr);
+            })
+        });
+    }
+
+    /**
+     * 加载远程图片资源
+     * @description
+     * @param          url           资源加载路径
+     * @returns                      类型 Promise<any> 
+     */
+    public static loadRemoteSprite(url: string) {
+        return new Promise((resolve, reject) => {
+            cc.loader.load(`${url}`, (err, res) => {
+                if (err) {
+                    reject(err);
+                }
+                let tex: cc.Texture2D = res as cc.Texture2D;
+                let spriteFrame = new cc.SpriteFrame(tex);
+                resolve(spriteFrame);
+            })
+        });
+
+    }
+
+    /**
+     * 加载预制体
+     * @description
+     * @param          url           资源加载路径
+     * @returns                      类型 Promise<any> 
+     */
+    public static loadPrefab(url: string): Promise<any> {
+        return new Promise((resolve, reject) => {
+            cc.loader.loadRes(`${url}`, function (err, prefab: cc.Prefab) {
+                if (err) {
+                    reject(err);
+                }
+                else {
+                    resolve(prefab);
+                }
+            }.bind(this));
+        });
+    }
+
+    /**
+     * 加载JSON文件
+     * @description
+     * @param          url           资源加载路径
+     * @returns                      类型 Promise<any> 
+     */
+    public static loadJson(url: string): Promise<any> {
+        return new Promise((resolve, reject) => {
+            cc.loader.loadRes(`${url}`, function (err, jsonAsset: cc.JsonAsset) {
+                if (err) {
+                    reject(err);
+                }
+                else {
+                    resolve(jsonAsset.json);
+                }
+            }.bind(this));
+        });
+    }
+
+    /**
+     * 加载音频文件
+     * @description
+     * @param          url           资源加载路径
+     * @returns                      类型 Promise<any> 
+     */
+    public static loadAudioClip(url: string): Promise<any> {
+        return new Promise((resolve, reject) => {
+            cc.loader.loadRes(`${url}`, function (err, clip: cc.AudioClip) {
+                if (err) {
+                    reject(err);
+                }
+                else {
+                    resolve(clip);
+                }
+            }.bind(this));
+        });
+    }
+}

+ 94 - 0
mk_framework/assets/script/mk/utils/LogUtil.ts

@@ -0,0 +1,94 @@
+/**日志打印工具类
+ * @description 
+ * @author 冯聪
+ */
+export default class LogUtil {
+
+    /**
+     * 标签符号
+     * @description 标签与打印内容之间的拼接符号
+     */
+    private static _tagChar: string = ": ";
+
+    /**
+     * 对象key&value间隔符号
+     * @description 打印对象时,key与value之间的拼接符号
+     */
+    private static _keyValueChar: string = " = ";
+
+    /**
+     * 打印普通日志
+     * @description
+     * @param          tag           日志标签(用于标识日志)
+     * @param          data          日志内容
+     */
+    public static log(tag: string, ...data: any[]) {
+        console.log(tag, this._tagChar, ...data);
+    }
+
+    /**
+     * 打印警告日志
+     * @description
+     * @param          tag            日志标签(用于标识日志)
+     * @param          data           日志内容
+     */
+    public static warn(tag: string, ...data: any[]) {
+        console.warn(tag, this._tagChar, ...data);
+    }
+
+    /**
+     * 打印错误日志
+     * @description
+     * @param          tag           日志标签(用于标识日志)
+     * @param          data          日志内容
+     */
+    public static error(tag: string, ...data: any[]) {
+        console.error(tag, this._tagChar, ...data);
+    }
+
+    /**
+     * 打印单个对象日志
+     * @description                   逐个分层打印所有对象的key,value值
+     * @param           tag           日志标签(用于标识日志)
+     * @param           obj           日志对象
+     * @param           frontStrNum   前缀字符数量(不用填)
+     * @returns 
+     */
+    public static logSingle(tag: string, obj: any, frontStrNum: number = 0) {
+        if (obj == null || obj == undefined) {
+            return
+        }
+
+        if (typeof obj === "number" || typeof obj === "string" || typeof obj === "boolean") {
+            this.log(`${this.getFrontStr(frontStrNum)}${tag}`, obj);
+        } else {
+            for (const key of Object.keys(obj)) {
+                if (obj.hasOwnProperty(key)) {
+                    if (typeof obj[key] === "object") {
+                        this.log(`${this.getFrontStr(frontStrNum)}${tag}` + key + this._keyValueChar)
+                        this.logSingle(tag, obj[key], ++frontStrNum);
+                    } else {
+                        this.log(`${this.getFrontStr(frontStrNum)}${tag}`, key, this._keyValueChar, obj[key]);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 获取前缀字符串
+     * @description                   根据前缀字符串数目生成前缀字符串,用以标记层级
+     * @param           frontStrNum   字符串数量
+     * @returns                       返回前缀字符串(string)
+     */
+    private static getFrontStr(frontStrNum: number): string {
+        let str = "";
+        if (frontStrNum > 0) {
+            for (let i = 0; i < frontStrNum; i++) {
+                str += "--"
+            }
+            return str;
+        }
+        return str;
+    }
+}