fix: stop coin reward tween when main panel closes

This commit is contained in:
2026-07-17 15:09:56 +08:00
parent 042409603f
commit 9c8387da32
+34 -5
View File
@@ -1,5 +1,5 @@
// @structural-rewrite-v1 // @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 { AssetController } from '../AssetController';
import { DataMgr } from '../framework/data/DataMgr'; import { DataMgr } from '../framework/data/DataMgr';
import { LocalSaveMgr } from '../framework/data/LocalSaveMgr'; import { LocalSaveMgr } from '../framework/data/LocalSaveMgr';
@@ -57,6 +57,7 @@ export class MainPanel extends PanelBase {
weaponDatas: Weapon[] = []; weaponDatas: Weapon[] = [];
private weaponOffset = 1000; private weaponOffset = 1000;
private curSelectIndex = 0; private curSelectIndex = 0;
private coinRewardTween: Tween<{ value: number }> | null = null;
protected onLoad(): void { protected onLoad(): void {
try { try {
do { do {
@@ -388,7 +389,9 @@ export class MainPanel extends PanelBase {
switch (0 as number) { switch (0 as number) {
case 1: break; case 1: break;
case 2: 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); } while (false);
} }
@@ -486,16 +489,27 @@ export class MainPanel extends PanelBase {
case 1: break; case 1: break;
case 2: break; case 2: break;
default: 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 ((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["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 { try {
do { do {
switch (0 as number) { switch (0 as number) {
case 1: break; case 1: break;
case 2: 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) default:
void ((this["addMoneyBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["interactable"] = true); 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); } while (false);
} }
@@ -508,4 +522,19 @@ export class MainPanel extends PanelBase {
finally { 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 {
}
}
} }