iconManager.ts 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import { Node, Sprite, SpriteFrame } from "cc";
  2. import { constants } from "../data/constants";
  3. import { resManager } from "./resManager";
  4. export class iconManager {
  5. private static _instance: iconManager;
  6. private constructor() { }
  7. public static get instance(): iconManager {
  8. if (!this._instance) {
  9. this._instance = new iconManager();
  10. }
  11. return this._instance;
  12. }
  13. iconsObj: any = {};
  14. loadAllIcons(onProgress?: Function, onComplete?: Function) {
  15. resManager.instance.loadAssetByBundleDir(constants.bundles.common.name, constants.bundles.common.dir.icon, SpriteFrame, (finish, total) => {
  16. if (onProgress) {
  17. onProgress(finish, total);
  18. }
  19. }, (assetArr) => {
  20. for (let i in assetArr) {
  21. let asset = assetArr[i];
  22. let name = asset.name;
  23. if (!name) {
  24. continue;
  25. }
  26. this.iconsObj[name] = asset;
  27. }
  28. if (onComplete) {
  29. onComplete();
  30. }
  31. });
  32. }
  33. setSprite(node: Node, name: string) {
  34. if (!node || !name) {
  35. console.log("iconManager.setSprite error:", node, name);
  36. return;
  37. }
  38. let sp = this.iconsObj[name];
  39. if (!sp) {
  40. console.log("icon:" + name + " is null");
  41. return;
  42. }
  43. node.getComponent(Sprite).spriteFrame = sp;
  44. }
  45. }