Keep track of visible shapes in an array

I am creating circle shapes with timer (currently with 40 ms delay) so every second it creates 25 circles, it then tweens few of their properties.
I have left just the alpha which is important (for simplicity) .
On the complete of each tween it tweens each circle’s alpha back to 0, and then removes each circle from the stage.

so after I stop the timer, i can still see 20/30 circles on the stage for about a second until they dissaper.
I wanted to push those circles in an array so that when I stop the timer, I put all visible circle’s alpha to 0, or just remove them all together, so that they **immediatelly **disappear from stage.

but I also need to remove those circles from array which have already disappeared, so that I always have **only **visible circles in an array. (not million of them)
(notice that tween time is math.random for each circle)

how could i remove them from an array in the same timer event?

function createCircles(e:TimerEvent):void {

    var circle:Shape = new Shape();;, 0, _startRadius);;

    circle.alpha = 0;, 1, {alpha: Math.random() + 0.2, onComplete: reverseCircle, onCompleteParams:[circle]});


   ** _visibleCirclesArr.push(circle);//pushing them in**

function reverseCircle(circle:Shape):void {, Math.random() + 0.2, {alpha: 0, onComplete: removeCircle, onCompleteParams:[circle]});

function removeCircle(circle:Shape):void {
    circle = null;