123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- /*
- * @Author: your name
- * @Date: 2021-06-25 21:34:25
- * @LastEditTime: 2021-07-04 17:20:46
- * @LastEditors: Please set LastEditors
- * @Description: In User Settings Edit
- * @FilePath: \rocketMan\assets\script\manager\bundleManager.ts
- */
- import { Log, LOG_TAG } from "../framework/log/Log";
- import AudioManager from "../framework/music/AudioManager";
- import Utils from "../framework/utils/utils";
- const { ccclass, property } = cc._decorator;
- @ccclass
- class bundleManager {
- private _localResIsLoad = false;
- private bundleArr: cc.AssetManager.Bundle[] = [];
- private bundleName = ['spine', 'UI', 'dungeon', 'levels', 'music','level3','level4','level5']
- public bundleTotal: number = this.bundleName.length; //总的分包数
- private _total: number = 0; //当前已经下载完的包数
- load() {
- this.loadSubpackage();
- }
- loadSubpackage() {
- console.log('zh: loadSubpackage ,bundleTotal=',+this.bundleTotal)
- if (this._total >= this.bundleTotal) {
- return;
- }
- let self = this;
- let name = Utils.getPlatformName();
- if (name) {
- let subName = self.bundleName[self._total];
- if (name === 'qg') {
- subName = 'usr_' + self.bundleName[self._total];
- }
- window[name].loadSubpackage({
- name: subName,
- success: function (res) {
- self.loadBundle(self.bundleName[self._total]);
- },
- fail: (err) => {
- console.log('loadSubpackage fail', err);
- }
- })
- } else {
- self.loadBundle(self.bundleName[self._total]);
- }
- }
- //下载单个分包
- loadSimpleSubpk(subpkName: string, cb?: Function) {
- let self = this;
- let name = Utils.getPlatformName();
- if (name) {
- let subName = subpkName;
- if (name === 'qg') {
- subName = 'usr_' + self.bundleName[self._total];
- }
- window[name].loadSubpackage({
- name: subName,
- success: function (res) {
- cc.assetManager.loadBundle(subName, (err, bundle) => {
- if (err) {
- return console.error(err);
- }
- Log.log(LOG_TAG.DEBUG, '加载分包' + subName + '成功')
- if (cb) { cb() };
- });
- },
- fail: (err) => {
- console.log('loadSubpackage fail', err);
- }
- })
- } else {
- cc.assetManager.loadBundle(subpkName, (err, bundle) => {
- if (err) {
- return console.error(err);
- }
- Log.log(LOG_TAG.DEBUG, '加载分包' + subpkName + '成功')
- if (cb) { cb() };
- });
- }
- }
- /**
- * 下载分包
- * @param bundleName 包名
- * @param cb 回调
- */
- loadBundle(bundleName: string, cb?: Function) {
- var self = this;
- cc.assetManager.loadBundle(bundleName, (err, bundle) => {
- if (err) {
- return console.error(err);
- }
- self.bundleArr.push(bundle);
- Log.log(LOG_TAG.DEBUG, '加载分包' + bundleName + '成功')
- if (self._total < self.bundleTotal) {
- self._total += 1;
- }
- setTimeout(() => {
- self.loadSubpackage();
- }, 100);
- if (cb) { cb() };
- });
- }
- /**
- * 通过分包名获取分包
- * @param bundleName 分包名
- * @returns 返回需要的分包
- */
- getBundleByName(bundleName: string): cc.AssetManager.Bundle {
- Log.log(LOG_TAG.DEBUG, 'getBundleByName: ' + bundleName)
- //console.info(' self.bundleArr=', this.bundleArr)
- let self = this;
- for (let i = 0; i < self.bundleArr.length; ++i) {
- if (self.bundleArr[i].name == bundleName) {
- return self.bundleArr[i];
- }
- }
- Log.log(LOG_TAG.DEBUG, bundleName + 'bunle is no found!!!!!!!!!!!!!!!')
- return undefined;
- }
- /**
- * 设置图片
- * @param bundleName 分包名
- * @param frameName 图片名
- * @param targetNode 目标节点
- */
- setBundleFrame(bundleName: string, frameName: string, targetNode?, cbk?) {
- let bundle = this.getBundleByName(bundleName);
- bundle.load(frameName, cc.SpriteFrame, (err, spriteFrames) => {
- if (!targetNode) {
- cbk(spriteFrames);
- return;
- }
- if (spriteFrames && targetNode.isValid) {
- targetNode.getComponent(cc.Sprite).spriteFrame = spriteFrames;
- }
- })
- }
- getBunleTotal() {
- return this._total;
- }
- public set localResIsload(boean: boolean) {
- this._localResIsLoad = boean;
- }
- public get localResIsload() {
- return this._localResIsLoad;
- }
- }
- export default new bundleManager()
|