AB.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import { Asset } from "cc";
  2. import { SpriteFrame } from "cc";
  3. import { Prefab, resources } from "cc";
  4. export default class AB {
  5. async preLoad() {
  6. await this.loadPrefab("prefab/hall/Hall");
  7. await this.loadPrefab("prefab/hall/PageShop");
  8. await this.loadPrefab("prefab/hall/PageRank");
  9. await this.loadPrefab("prefab/hall/PagePlay");
  10. await this.loadPrefab("prefab/hall/PageWallet");
  11. // load all sprites from texture/hall folder
  12. let hallTextures = await this.loadDir("texture/hall", SpriteFrame);
  13. console.warn("hall textures loaded:", hallTextures.length);
  14. let rankTextures = await this.loadDir("texture/rank", SpriteFrame);
  15. console.warn("rank textures loaded:", rankTextures.length);
  16. let shopTextures = await this.loadDir("texture/shop", SpriteFrame);
  17. console.warn("shop textures loaded:", shopTextures.length);
  18. let playTextures = await this.loadDir("texture/play", SpriteFrame);
  19. console.warn("play textures loaded:", playTextures.length);
  20. let walletTextures = await this.loadDir("texture/wallet", SpriteFrame);
  21. console.warn("wallet textures loaded:", walletTextures.length);
  22. let commonTextures = await this.loadDir("texture/common", SpriteFrame);
  23. console.warn("common textures loaded:", commonTextures.length);
  24. await this.loadPrefab("prefab/layer/TipsLayer");
  25. return true;
  26. }
  27. async loadInLoading(): Promise<boolean> {
  28. return new Promise((resolve, reject) => {
  29. resolve(true);
  30. });
  31. }
  32. loadRes(path: string, asset: typeof Asset): Promise<Asset> {
  33. return new Promise((resolve, reject) => {
  34. resources.load(path, asset, (err, asset) => {
  35. if (err) {
  36. reject(err);
  37. } else {
  38. resolve(asset);
  39. }
  40. });
  41. });
  42. }
  43. loadDir(path: string, asset: typeof Asset): Promise<Asset[]> {
  44. return new Promise((resolve, reject) => {
  45. resources.loadDir(path, asset, (err, assets) => {
  46. if (err) {
  47. reject(err);
  48. } else {
  49. resolve(assets);
  50. }
  51. });
  52. });
  53. }
  54. private static _ins: AB;
  55. public static get ins(): AB {
  56. return (AB._ins ??= new AB());
  57. }
  58. async loadPrefab(path: string): Promise<Prefab> {
  59. return new Promise((resolve, reject) => {
  60. resources.load(path, Prefab, (err, prefab) => {
  61. if (err) {
  62. reject(err);
  63. } else {
  64. resolve(prefab);
  65. }
  66. });
  67. });
  68. }
  69. async loadSpriteFrame(path: string): Promise<SpriteFrame> {
  70. let spPath = path + "/spriteFrame";
  71. let sp = await this.loadRes(spPath, SpriteFrame);
  72. return sp as SpriteFrame;
  73. }
  74. }