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
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 {
}
}
}