1. package
  2. {
  3. import org.flintparticles.threeD.emitters.Emitter3D;
  4. import org.flintparticles.common.events.EmitterEvent;
  5.  
  6. public class EmitterContainer extends BaseObject
  7. {
  8. protected var emitter:Emitter3D = null;
  9.  
  10. public function EmitterContainer()
  11. {
  12. super();
  13. }
  14.  
  15. public function startupEmitterContainer(engineManager:EngineManager, emitter:Emitter3D):EmitterContainer
  16. {
  17. super.startupBaseObject(engineManager);
  18. this.emitter = emitter;
  19. this.engineManager.renderer.addEmitter(emitter);
  20. this.emitter.addEventListener( EmitterEvent.EMITTER_EMPTY, removeEmitter, false, 0, true );
  21. this.emitter.start();
  22. return this;
  23. }
  24.  
  25. public function removeEmitter( ev:EmitterEvent ):void
  26. {
  27. this.shutdown();
  28. }
  29.  
  30. public override function shutdown():void
  31. {
  32. this.emitter.removeEventListener( EmitterEvent.EMITTER_EMPTY, removeEmitter );
  33. this.engineManager.renderer.removeEmitter(this.emitter);
  34. this.emitter = null;
  35. super.shutdown();
  36. }
  37.  
  38. }
  39. }