first commit
This commit is contained in:
64
assets/scripts/Loading.ts
Normal file
64
assets/scripts/Loading.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import { _decorator, Component, ProgressBar, Label, assetManager, director, SpriteFrame, Prefab } from 'cc';
|
||||
import { ResourceManager } from './ResourceManager';
|
||||
const { ccclass, property } = _decorator;
|
||||
|
||||
@ccclass('Loading')
|
||||
export class Loading extends Component {
|
||||
@property(ProgressBar)
|
||||
progressBar: ProgressBar | null = null;
|
||||
|
||||
@property(Label)
|
||||
progressLabel: Label | null = null;
|
||||
|
||||
@property
|
||||
nextScene: string = "StartScene";
|
||||
|
||||
onLoad() {
|
||||
// if (typeof wx !== 'undefined' && wx.hideLoading) {
|
||||
// wx.hideLoading();
|
||||
// }
|
||||
this.startLoading();
|
||||
}
|
||||
|
||||
startLoading() {
|
||||
assetManager.loadBundle("resources", (err, bundle) => {
|
||||
if (err) {
|
||||
console.error("加载 resources 失败:", err);
|
||||
return;
|
||||
}
|
||||
console.log(11111111111,2222)
|
||||
|
||||
// 加载整个 resources 下的内容
|
||||
bundle.loadDir(".", (finished, total, item) => {
|
||||
let ratio = finished / total;
|
||||
console.log(11111111111,ratio)
|
||||
|
||||
this.updateProgress(ratio);
|
||||
}, (err, assets) => {
|
||||
if (err) {
|
||||
console.error("资源加载失败:", err);
|
||||
return;
|
||||
}
|
||||
|
||||
// 缓存资源
|
||||
assets.forEach(asset => {
|
||||
ResourceManager.instance.set(asset.name, asset);
|
||||
asset.addRef(); // 增加引用计数,避免被自动释放
|
||||
});
|
||||
|
||||
// 进入主场景
|
||||
director.loadScene(this.nextScene);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
updateProgress(ratio: number) {
|
||||
console.log(111111, ratio)
|
||||
if (this.progressBar) {
|
||||
this.progressBar.progress = ratio;
|
||||
}
|
||||
if (this.progressLabel) {
|
||||
this.progressLabel.string = `${Math.floor(ratio * 100)}%`;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user