@Override
    public void setTime(float time, float weight, AnimControl control, AnimChannel channel, TempVars vars) {

        if (time >= length) {
            return;
        }
        //first time adding the Animation listener to stop the track at the end of the animation
        if (!initialized) {
            control.addListener(new OnEndListener());
            initialized = true;
        }
        //checking for time to trigger the effect
        if (!emitted && time >= startOffset) {
            emitted = true;
            emitter.setCullHint(CullHint.Dynamic);
            emitter.setEnabled(true);
            //if the emitter has 0 particles per second, emit all particles in one shot
            if (particlesPerSeconds == 0) {
                emitter.emitAllParticles();
                if (!killParticles.stopRequested) {
                    emitter.addControl(killParticles);
                    killParticles.stopRequested = true;
                }
            } else {
                //else reset its former particlePerSec value to let it emit.
                emitter.setParticlesPerSec(particlesPerSeconds);
            }
        }
    }
Internal use only

@see Track#setTime(float, float, com.jme3.animation.AnimControl,
com.jme3.animation.AnimChannel, com.jme3.util.TempVars)
jme3-core/src/main/java/com/jme3/animation/EffectTrack.java