我正在AS3中开发一个使用starling粒子扩展的应用程序,但是我有一些麻烦不能循环它。
我在一个名为particle的对象包中创建了一个新类,其中包含以下代码。
mParticleSystem = mParticleSystems.shift();
mParticleSystems.push(mParticleSystem);
mParticleSystem.emitterX = 320;
mParticleSystem.emitterY = 240;
mParticleSystem.start();
addChild(mParticleSystem);
Starling.juggler.add(mParticleSystem);
我通过
在我的主项目中调用此类particle = new Particle();
this.addChild(particle);
一切都很完美,除非我无法阻止变戏法者。我已经尝试将一个事件监听器添加到mParticleSystem并调用一个要删除的函数,但事件不会触发。任何指导都表示赞赏。
答案 0 :(得分:0)
我猜你的变量mParticleSystem
是类starling.extensions.ParticleSystem
的一个实例。在这种情况下,ParticleSystem
个对象在完成发射所有粒子后调度事件“完成”。你可以通过伟大的Lee Brimelow用实际代码检查这个Quick Tip: Starling Particle Effect Disposal(更新后的工作代码就在最开始)。
另一个不错的选择是,您可以通过将参数传递给ParticleSystem
方法来指定您希望start()
发出粒子的时长:
// emit particles for two seconds, then stop
mParticlesSystem.start(2.0);
那么你可以在2秒后从变戏法者中删除ParticleSystem
。
希望这有帮助!