47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { Label } from 'cc';
|
|
import { Sprite } from 'cc';
|
|
import { CCString } from 'cc';
|
|
import { director } from 'cc';
|
|
import { _decorator, Component, Node } from 'cc';
|
|
import { UmLog } from '../../../cc-common/cc-util/UmLog';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
@ccclass('LoadingScene')
|
|
export class LoadingScene extends Component {
|
|
@property(CCString) sceneName = "mainscene";
|
|
@property(Sprite) progress: Sprite = null!;
|
|
totalPercent: number = 0;
|
|
|
|
protected onLoad(): void {
|
|
this.progress.fillRange = 0;
|
|
|
|
director.preloadScene(this.sceneName, (completedCount, totalCount) => {
|
|
let percent = 0;
|
|
if (totalCount > 0) {
|
|
percent = 100 * completedCount / totalCount;
|
|
this.totalPercent = 100 * completedCount / totalCount;
|
|
}
|
|
if (percent < 100) {
|
|
// const progressBar = this.processBar.getComponent(cc.ProgressBar);
|
|
// progressBar.progress = percent/100;
|
|
}
|
|
|
|
}, (error) => {
|
|
if (error) {
|
|
UmLog.error("preloadScene Error: ", error);
|
|
} else {
|
|
// cc.director.loadScene(sceneName);
|
|
}
|
|
});
|
|
}
|
|
|
|
protected update(dt: number): void {
|
|
this.progress.fillRange += ((this.totalPercent / 100) - this.progress.fillRange) / 20;
|
|
|
|
if (this.progress.fillRange >= .999) {
|
|
director.loadScene(this.sceneName);
|
|
}
|
|
}
|
|
}
|
|
|