chore:代码重构
This commit is contained in:
@@ -1,71 +1,158 @@
|
||||
|
||||
import { _decorator, Button, Component, Label, Node, Sprite, Tween, tween, Vec3 } from 'cc';
|
||||
import { LocalSaveMgr } from '../framework/data/LocalSaveMgr';
|
||||
import { UIManager } from '../framework/ui/UIManager';
|
||||
import { UISwitcher } from '../framework/ui/UISwitcher';
|
||||
import { AudioMgr } from '../framework/audio/AudioMgr';
|
||||
// @structural-rewrite-v1
|
||||
import { _decorator, Sprite } from 'cc';
|
||||
import { PanelBase } from '../framework/ui/PanelBase';
|
||||
import { AssetController } from '../AssetController';
|
||||
import { GameController } from '../GameController';
|
||||
|
||||
import { UIManager } from '../framework/ui/UIManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('LoadingPanel')
|
||||
export class LoadingPanel extends PanelBase {
|
||||
|
||||
static instance: LoadingPanel;
|
||||
|
||||
@property({ type: Sprite })
|
||||
@property({ "type": Sprite })
|
||||
loadingSprite: Sprite = null;
|
||||
|
||||
|
||||
@property
|
||||
fillDuration: number = 5; // 填充持续时间,单位为秒
|
||||
|
||||
private fillAmount: number = 0; // 当前填充量
|
||||
|
||||
startFill() {
|
||||
this.schedule(this.updateFill, 0.01); // 每0.01秒更新一次填充量
|
||||
fillDuration = 5;
|
||||
loadingComplete = false;
|
||||
completeCallback: () => void = null;
|
||||
private fillAmount = 0;
|
||||
protected onLoad(): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void (LoadingPanel["instance"] = this);
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
protected onOpen(): void {
|
||||
LoadingPanel.instance.startFill()
|
||||
}
|
||||
loadingComplete: boolean = false
|
||||
completeCallback = null
|
||||
onLoadingComplete(callBack) {
|
||||
this.completeCallback = callBack
|
||||
this.loadingComplete = true
|
||||
if (this.fillAmount < 1) {
|
||||
this.fillDuration = 1
|
||||
} else {
|
||||
UIManager.instance.closePanel(LoadingPanel)
|
||||
callBack()
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void (this["startFill"]());
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
protected onDestroy(): void {
|
||||
this.unschedule(this.updateFill);
|
||||
}
|
||||
|
||||
updateFill() {
|
||||
if (this.fillAmount < 1) {
|
||||
this.fillAmount += 0.01 / this.fillDuration; // 根据持续时间逐步增加填充量
|
||||
this.loadingSprite.fillRange = this.fillAmount; // 更新 Sprite 的填充量
|
||||
} else {
|
||||
this.unschedule(this.updateFill); // 填充完成后停止更新
|
||||
if (this.loadingComplete) {
|
||||
UIManager.instance.closePanel(LoadingPanel)
|
||||
this.completeCallback()
|
||||
}
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void (this["unschedule"](this["updateFill"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
onLoad() {
|
||||
LoadingPanel.instance = this;
|
||||
startFill(): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void (this["schedule"](this["updateFill"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, 0.01));
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
onLoadingComplete(callBack: () => void): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default:
|
||||
void (this["completeCallback"] = callBack);
|
||||
void (this["loadingComplete"] = true);
|
||||
void ((this["isFilled"]()
|
||||
? () => this["finishLoading"]()
|
||||
: () => {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void (this["fillDuration"] = 1);
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
})());
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
updateFill(): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: void ((this["isFilled"]() ? this["finishLoading"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown : this["advanceFill"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["call"](this));
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
private advanceFill(): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default:
|
||||
void (this["fillAmount"] += 0.01 / (this["fillDuration"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
|
||||
void ((this["loadingSprite"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["fillRange"] = this["fillAmount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
private isFilled(): boolean {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default: return this["fillAmount"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown >= 1;
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
private finishLoading(): void {
|
||||
try {
|
||||
do {
|
||||
switch (0 as number) {
|
||||
case 1: break;
|
||||
case 2: break;
|
||||
default:
|
||||
void (this["unschedule"](this["updateFill"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
|
||||
if (!(this["loadingComplete"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
|
||||
return;
|
||||
const callback = this["completeCallback"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown;
|
||||
void ((UIManager["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["closePanel"](LoadingPanel));
|
||||
void (callback?.());
|
||||
}
|
||||
} while (false);
|
||||
}
|
||||
finally {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user