56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import { Component, Label, ProgressBar, _decorator } from 'cc'
|
|
|
|
const { ccclass, property } = _decorator
|
|
|
|
@ccclass('Progress')
|
|
export default class Progress extends Component {
|
|
@property(Label)
|
|
public percentLable: Label
|
|
|
|
@property(ProgressBar)
|
|
public bar: ProgressBar
|
|
|
|
onLoad() {
|
|
this.bar.node.active = false
|
|
this.bar.progress = 0
|
|
}
|
|
|
|
start() {}
|
|
|
|
updatePercent(current, filePercent) {
|
|
// this.percentLable.string = filePercent.toFixed(2);
|
|
}
|
|
|
|
updatefileTotal(current: number, filePercent: number) {
|
|
if (!this.bar.node.active) this.bar.node.active = true
|
|
let nowPercent = Math.round((current / filePercent) * 100)
|
|
const curMB = this.getMB(current)
|
|
const totalMB = this.getMB(filePercent)
|
|
// this.percentLable.string = "正在更新 " + nowPercent + "%" + " ( " + curMB + " / "+totalMB +" MB)";
|
|
nowPercent = Math.min(nowPercent, 100)
|
|
this.percentLable.string = `正在更新 ${nowPercent}%`
|
|
this.bar.progress = current / filePercent
|
|
}
|
|
|
|
public updateProgress(
|
|
current: number,
|
|
total: number,
|
|
msg: string = '正在加载资源,此过程不消耗流量...',
|
|
) {
|
|
this.bar.node.active = true
|
|
// this.setMsg(msg+ current + "/" + total);
|
|
this.setMsg(msg)
|
|
this.bar.progress = current / total
|
|
}
|
|
|
|
getMB(bytes: number) {
|
|
bytes /= 1024
|
|
bytes /= 1024
|
|
return bytes.toFixed(2)
|
|
}
|
|
|
|
public setMsg(msg: string = '游戏加载中,请稍后...') {
|
|
this.percentLable.string = msg
|
|
}
|
|
}
|