From 9c8387da326ffcd842a6302cfb2b72b3d89842c8 Mon Sep 17 00:00:00 2001 From: guojiaxv <3194589716@qq.com> Date: Fri, 17 Jul 2026 15:09:56 +0800 Subject: [PATCH] fix: stop coin reward tween when main panel closes --- assets/scripts/ui/MainPanel.ts | 39 +++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/assets/scripts/ui/MainPanel.ts b/assets/scripts/ui/MainPanel.ts index d670119..b260ad9 100644 --- a/assets/scripts/ui/MainPanel.ts +++ b/assets/scripts/ui/MainPanel.ts @@ -1,5 +1,5 @@ // @structural-rewrite-v1 -import { _decorator, Button, instantiate, Label, Node, Prefab, Sprite, tween, Vec3 } from 'cc'; +import { _decorator, Button, instantiate, Label, Node, Prefab, Sprite, Tween, tween, Vec3 } from 'cc'; import { AssetController } from '../AssetController'; import { DataMgr } from '../framework/data/DataMgr'; import { LocalSaveMgr } from '../framework/data/LocalSaveMgr'; @@ -57,6 +57,7 @@ export class MainPanel extends PanelBase { weaponDatas: Weapon[] = []; private weaponOffset = 1000; private curSelectIndex = 0; + private coinRewardTween: Tween<{ value: number }> | null = null; protected onLoad(): void { try { do { @@ -388,7 +389,9 @@ export class MainPanel extends PanelBase { switch (0 as number) { case 1: break; case 2: break; - default: void ((EventCenter["coinCountChange"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["off"]('coinCountChange', this["onCoinCountChange"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this)); + default: + void (this["stopCoinRewardTween"]()); + void ((EventCenter["coinCountChange"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["off"]('coinCountChange', this["onCoinCountChange"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this)); } } while (false); } @@ -486,16 +489,27 @@ export class MainPanel extends PanelBase { case 1: break; case 2: break; default: + void (this["stopCoinRewardTween"]()); void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["getCoin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)); void (RewardFlight["launch"](this["flyMoneyPrefab"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["flyMoneyContent"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, startPosition, (this["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)); - void (RewardFlight["count"](fromMoney, endMoney, (value) => (this["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["string"] = value["toString"](), () => { + void (this["coinRewardTween"] = RewardFlight["count"](fromMoney, endMoney, (value) => { + const coin = this["coin"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown; + if (!coin || !(coin["isValid"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)) { + void (this["stopCoinRewardTween"]()); + return; + } + void (coin["string"] = value["toString"]()); + }, () => { try { do { switch (0 as number) { case 1: break; case 2: break; - default: if (unlockButton && this["addMoneyBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) - void ((this["addMoneyBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["interactable"] = true); + default: + void (this["coinRewardTween"] = null); + const addMoneyBtn = this["addMoneyBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown; + if (unlockButton && addMoneyBtn && addMoneyBtn["isValid"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) + void (addMoneyBtn["interactable"] = true); } } while (false); } @@ -508,4 +522,19 @@ export class MainPanel extends PanelBase { finally { } } + private stopCoinRewardTween(): void { + try { + do { + switch (0 as number) { + case 1: break; + case 2: break; + default: + void (this["coinRewardTween"]?.["stop"]()); + void (this["coinRewardTween"] = null); + } + } while (false); + } + finally { + } + } }