a82b1762-2ea5-4e85-894e-fd48f5d79339.js.map 12.3 KB
{"version":3,"sources":["assets/script/common/utils/AnimationUtils.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import FrameAnimation from \"../components/FrameAnimation\";\nimport { ScheduleUtils } from \"./ScheduleUtils\";\n\nexport namespace AnimationUtils {\n    export function playFrameAnimation(node: cc.Node, loop: boolean, name: string, callback?: (loopCount?: number) => void) {\n        let anims = node.getComponents(FrameAnimation)\n        if (!anims || anims.length == 0) {\n            return\n        }\n        let findOne: FrameAnimation = anims[0]\n        for (let i = 0; i < anims.length; i++) {\n            const anim = anims[i];\n            if (anim.tag == name) {\n                findOne = anim\n            } else {\n                anim.enabled = false\n            }\n        }\n        findOne.enabled = true;\n        findOne.play(callback, loop);\n    }\n\n    export function playFrameAnimationOnce(node: cc.Node, name: string, callback?: (loopCount?: number) => void) {\n        playFrameAnimation(node, false, name, callback);\n    }\n\n    export function playFrameAnimationLoop(node: cc.Node, name: string) {\n        playFrameAnimation(node, true, name);\n    }\n\n    export function animateProgress(progressBar: cc.ProgressBar, progress: number, speed = 1, label?: cc.Label): Promise<void> {\n        return new Promise((resolve) => {\n            let oldProgress = progressBar.progress\n            if (oldProgress == progress) {\n                resolve();\n                return;\n            }\n            if (progress > 1) progress = 1;\n            if (progress < 0) progress = 0;\n            let delta = progress - oldProgress;\n\n            if ((<any>progressBar).updateFunc) ScheduleUtils.unscheduleUpdate((<any>progressBar).updateFunc);\n            const update = (dt: number) => {\n                oldProgress += delta * dt * speed;\n                if ((delta > 0 && oldProgress > progress) || (delta < 0 && oldProgress < progress)) {\n                    oldProgress = progress;\n                    delete (<any>progressBar).updateFunc;\n                    ScheduleUtils.unscheduleUpdate(update);\n                    resolve();\n                }\n                progressBar.progress = oldProgress;\n                if (label) label.string = `${Math.round(oldProgress * 1000) / 10}%`;\n            }\n            (<any>progressBar).updateFunc = update;\n            ScheduleUtils.scheduleUpdate(update);\n        });\n    }\n\n    //异步动画执行API. 方便链式调用.\n    export async function runAction(node: cc.Node | cc.Component, action: cc.FiniteTimeAction | cc.FiniteTimeAction[]): Promise<any> {\n        return new Promise<any>(resolve => {\n            if (!action || !node) {\n                console.info(\"runAction param is null:\", node, action)\n                resolve();\n                return;\n            }\n            let nd = node instanceof cc.Component ? node.node : node\n            nd.runAction(cc.sequence(action, cc.callFunc(function () {\n                resolve()\n            })))\n        })\n    }\n\n    let timerIds: number[] = [];\n    export function ActionTypeWriter(comp: cc.Label | cc.RichText, str: string, time?: number) {\n        return new Promise<any>((resolve) => {\n            if (timerIds && timerIds.length) {\n                for (let i = 0; i < timerIds.length; i++) {\n                    clearTimeout(timerIds[i]);\n                }\n                timerIds = [];\n            }\n            if (!comp || !str || \"\" === str.trim()) { return; }\n            comp.string = str;\n            time = time ? time : 1;\n            let cArr: string[] = [];\n            for (let i = 0; i < str.length; i++) {\n                cArr.push(\" \");\n            }\n            let reg = new RegExp(',', 'g');\n            for (let i = 0; i < str.length; i++) {\n                cArr[i] = str[i];\n                let s = cArr.toString();\n                let id = setTimeout(() => {\n                    s = s.replace(reg, \"\");\n                    comp.string = s;\n                    if (s.length === str.length) {\n                        resolve();\n                    }\n                }, time / str.length * 1000 * i);\n                timerIds.push(id);\n            }\n        });\n    }\n\n    let animTime: number = 0.3;\n    /**\n     * \n     * @param maskNode 遮罩node\n     * @param mainNode 所有内容node\n     * @param params callback:执行完成后的回调,maskNodeOpacityValue遮罩node的opacity值\n     */\n    export function showUIAnim(mainNode: cc.Node, params = { callback: () => { }, maskNodeOpacityValue: 200 }, maskNode?: cc.Node): void {\n\n        mainNode.scale = 0;\n        mainNode.active = true;\n        // 播放背景动画\n        let opacityValue = params.maskNodeOpacityValue;\n        if (maskNode) {\n            maskNode.opacity = 0;\n            maskNode.active = true;\n            cc.tween(maskNode)\n                .to(animTime * 0.8, { opacity: opacityValue })\n                .call(() => {\n                })\n                .start();\n        }\n\n        // 播放主体动画\n        cc.tween(mainNode)\n            .to(animTime, { scale: 1 }, { easing: 'backOut' })\n            .call(() => {\n                // 弹窗已完全展示(动画完毕)\n                if (params.callback) params.callback();\n            })\n            .start();\n\n    }\n\n    /**\n     * \n     * @param parentNode 该组件挂载的node\n     * @param maskNode 遮罩node\n     * @param mainNode 所有内容node\n     * @param params callback:执行完成后的回调,maskNodeOpacityValue遮罩node的opacity值\n     */\n    export function hideUIAnim(parentNode: cc.Node, mainNode: cc.Node, params = { callback: () => { } }, maskNode?: cc.Node): void {\n        // 拦截点击事件\n        let blocker = parentNode.getChildByName(\"blocker\");\n        if (!blocker) {\n            blocker = new cc.Node('blocker');\n            blocker.addComponent(cc.BlockInputEvents);\n            blocker.setParent(parentNode);\n            blocker.setContentSize(parentNode.getContentSize());\n        }\n        blocker.active = true;\n        if (maskNode) {\n            // 播放背景动画\n            cc.tween(maskNode)\n                .delay(animTime * 0.2)\n                .to(animTime * 0.8, { opacity: 0 })\n                .call(() => {\n                })\n                .start();\n        }\n\n        // 播放主体动画\n        cc.tween(mainNode)\n            .to(animTime, { scale: 0 }, { easing: 'backIn' })\n            .call(() => {\n                blocker.active = false;\n                if (params.callback) params.callback();\n            })\n            .start();\n    }\n}\n"]}