Confused Recycling Particles

var numberOfParticles:Number = 400;
var particlesArray:Array = new Array();
for (var i=0; i < numberOfParticles; i++) {
var particle:Particle = new Particle();
particle.speedX = 3 + Math.random() * 2;
particle.speedY = 15 + Math.random() * 2;
particle.scaleX = 0.1 + Math.random() * 0.5;
particle.scaleY = particle.scaleX;
var tempBlurAmount = Math.random()4;
var blur:BlurFilter = new BlurFilter(tempBlurAmount, tempBlurAmount, 1);
var particleFilters:Array = new Array();
particleFilters.push (blur);
particle.filters = particleFilters;
particle.y = Math.random() * stage.stageHeight;
particle.x = Math.random() * stage.stageWidth;
particle.alpha = 0.2 + Math.random() * 0.8;
addChild (particle);
particlesArray.push (particle);
}
addEventListener (Event.ENTER_FRAME, enterFrameHandler);
function enterFrameHandler (e:Event):void {
for (var i = 0; i < particlesArray.length; i++) {
var particle = particlesArray
;
particle.y += particle.speedY;
particle.x += particle.speedX;
if (particle.y > stage.stageHeight) {
particle.y = 0;
particle.x = Math.random() * stage.stageWidth;
}
}
}

Hi,

Can someone be so kind and explain this part of code, I’m a little confused. The particles are sent to the top, here is where I’m confused, are these particles going to be part of the array again ones they are on the top and are they will eventually move down again?

Does this mean that the ones moving up are going to be added to the array and eventually the quantity will excide the 400 particles or will this stop the listener?

Can someone explain this a little bit?

    if (particle.y &gt; stage.stageHeight) {
        particle.y = 0;
        particle.x = Math.random() * stage.stageWidth;

Thanks