Source: loaders/index.js

loaders/index.js

  1. import Application from '../core/Application';
  2. import Loader from './loader';
  3. /**
  4. * This namespace contains APIs which extends the {@link https://github.com/englercj/resource-loader resource-loader} module
  5. * for loading assets, data, and other resources dynamically.
  6. * @example
  7. * const loader = new PIXI.loaders.Loader();
  8. * loader.add('bunny', 'data/bunny.png')
  9. * .add('spaceship', 'assets/spritesheet.json');
  10. * loader.load((loader, resources) => {
  11. * // resources.bunny
  12. * // resources.spaceship
  13. * });
  14. * @namespace PIXI.loaders
  15. */
  16. export { Loader };
  17. export { default as bitmapFontParser, parse as parseBitmapFontData } from './bitmapFontParser';
  18. export { default as spritesheetParser, getResourcePath } from './spritesheetParser';
  19. export { default as textureParser } from './textureParser';
  20. /**
  21. * Reference to **resource-loader**'s Resource class.
  22. * See https://github.com/englercj/resource-loader
  23. * @class Resource
  24. * @memberof PIXI.loaders
  25. */
  26. // 修改依赖库应对小程序环境
  27. export { Resource } from '../dependencies/resource-loader/lib/';
  28. // export { Resource } from 'resource-loader';
  29. /**
  30. * A premade instance of the loader that can be used to load resources.
  31. * @name shared
  32. * @memberof PIXI.loaders
  33. * @type {PIXI.loaders.Loader}
  34. */
  35. const shared = new Loader();
  36. shared.destroy = () =>
  37. {
  38. // protect destroying shared loader
  39. };
  40. export { shared };
  41. // Mixin the loader construction
  42. const AppPrototype = Application.prototype;
  43. AppPrototype._loader = null;
  44. /**
  45. * Loader instance to help with asset loading.
  46. * @name PIXI.Application#loader
  47. * @type {PIXI.loaders.Loader}
  48. */
  49. Object.defineProperty(AppPrototype, 'loader', {
  50. get()
  51. {
  52. if (!this._loader)
  53. {
  54. const sharedLoader = this._options.sharedLoader;
  55. this._loader = sharedLoader ? shared : new Loader();
  56. }
  57. return this._loader;
  58. },
  59. });
  60. // Override the destroy function
  61. // making sure to destroy the current Loader
  62. AppPrototype._parentDestroy = AppPrototype.destroy;
  63. AppPrototype.destroy = function destroy(removeView, stageOptions)
  64. {
  65. if (this._loader)
  66. {
  67. this._loader.destroy();
  68. this._loader = null;
  69. }
  70. this._parentDestroy(removeView, stageOptions);
  71. };