薛鸿潇 5 年之前
父节点
当前提交
58d41875ce

+ 4 - 15
assets/script/game/component/tween/EffectOpenAndClose.ts

@@ -73,16 +73,10 @@ export default class EffectOpenAndClose extends cc.Component {
                 case EffectType.none:
                     break;
                 case EffectType.scale:
-                    this.effect_par.scale = 0;
-                    cc.tween(this.effect_par)
-                        .to(0.15, { scale: 1 })
-                        .start()
+                    mk.tween.scale(this.effect_par);
                     break;
                 case EffectType.centerUnfolding:
-                    this.effect_par.scaleX = 0;
-                    cc.tween(this.effect_par)
-                        .to(0.15, { scaleX: 1 })
-                        .start()
+                    mk.tween.scaleX(this.effect_par);
                     break;
             }
         }
@@ -92,19 +86,14 @@ export default class EffectOpenAndClose extends cc.Component {
      * 关闭打开效果
      * @param cb 结束回调
      */
-    public hideEffect(cb: Function = null) {
+    public hideEffect(cb?: Function) {
         if (this.effect_par) {
             switch (this.close_effect) {
                 case EffectType.none:
                     cb && cb();
                     break;
                 case EffectType.scale:
-                    cc.tween(this.effect_par)
-                        .to(0.15, { scale: 0 })
-                        .call(() => {
-                            cb && cb();
-                        })
-                        .start()
+                    mk.tween.scale(this.effect_par, 0.15, 1, 0, cb);
                     break;
                 case EffectType.scaleToPoint:
                     if (this.close_toPoint == "") {

+ 5 - 0
assets/script/mk/system/MKSystem.ts

@@ -18,6 +18,7 @@ import ATSDKMgr from "../sdk/ad/toppon/AnyThinkAdsMgr/ATSDKMgr";
 import AudioSystem from "./AudioSystem";
 import TipSystem from "./TipSystem";
 import PoolSystem from "./PoolSystem";
+import TweenUtil from "../utils/TweenUtil";
 
 /**
  * @description mk系统
@@ -61,6 +62,10 @@ class MKSystem {
     public get math(): MathUtil {
         return this._math || (this._math = new MathUtil());
     }
+    private _tween: TweenUtil;
+    public get tween(): TweenUtil {
+        return this._tween || (this._tween = new TweenUtil())
+    }
 
     /** SDK */
     private _bugly: BuglySDK;

+ 30 - 1
assets/script/mk/utils/TweenUtil.ts

@@ -6,5 +6,34 @@ const { ccclass, property } = cc._decorator;
  */
 @ccclass
 export default class TweenUtil {
-    
+
+    /**
+     * 缩放效果
+     * @param node 动画节点
+     * @param time 动画时间
+     * @param start_scale 起始缩放属性
+     * @param end_scale 目标缩放属性
+     * @param complete_fun 完成回调
+     */
+    public scale(node: cc.Node, time: number = 0.15, start_scale: number = 0, end_scale: number = 1, complete_fun?: Function) {
+        node.scale = start_scale;
+        let scale1 = cc.tween().to(time, { scale: end_scale });
+        let call1 = cc.tween().call(() => { complete_fun && complete_fun(); })
+        cc.tween(node).then(scale1).then(call1).start()
+    }
+
+    /**
+    * 缩放效果
+    * @param node 动画节点
+    * @param time 动画时间
+    * @param start_scale 起始缩放属性
+    * @param end_scale 目标缩放属性
+    * @param complete_fun 完成回调
+    */
+    public scaleX(node: cc.Node, time: number = 0.15, start_scale: number = 0, end_scale: number = 1, complete_fun?: Function) {
+        node.scaleX = start_scale;
+        let scale1 = cc.tween().to(time, { scaleX: end_scale });
+        let call1 = cc.tween().call(() => { complete_fun && complete_fun(); })
+        cc.tween(node).then(scale1).then(call1).start()
+    }
 }