AudioEffect.ts 759 B

123456789101112131415161718192021
  1. import { AudioClip, AudioSource, error, _decorator, isValid } from 'cc';
  2. import { resLoader } from '../res/ResLoader';
  3. const { ccclass, menu } = _decorator;
  4. export class AudioEffect extends AudioSource {
  5. private _effects: Map<string, AudioClip> = new Map<string, AudioClip>();
  6. load(bundle: string, url: string, callback?: Function) {
  7. resLoader.load(bundle, url, AudioClip, (error: Error, clip: AudioClip) => {
  8. if (error) {
  9. console.error(error);
  10. } else {
  11. if(isValid(this._effects)){
  12. this._effects.set(url, clip);
  13. this.playOneShot(clip, this.volume);
  14. callback && callback();
  15. }
  16. }
  17. });
  18. }
  19. }