Associating a loop variable to objects created in it

Hello all, a question here. I create some movieclips dynamically through a loop and store them into an array. I add an event listener to all those movieclips. In the function to which I direct the listener I want to be able to get the loop variable value associated with each movieclip. For example if you click the movieclip that was created the first time the loop ran then you would get the value 0.

Hope I have explained myself well enough. Is it necessary to create a custom event class for this?
Thanks for your help.

Andres.

 package 

{ 
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 
     
    public class Main extends MovieClip 
     
    { 
        var num:int = 0; 
        var mcArr:Array = new Array(); 
        public function Main() 
         
        { 
             
            for (var i:uint = 0; i<25; i++){ 
                 
                mcArr* = new MovieClip; 
            addChild(mcArr*); 
            mcArr*.name = "mc" + (i+1); 
            mcArr*.graphics.beginFill(0x000000); 
            mcArr*.graphics.drawRect(0,0,100,100); 
            mcArr*.graphics.endFill(); 
            mcArr*.width = 20; 
            mcArr*.height = 20; 
            mcArr*.x = i * 21; 

     
            mcArr*.addEventListener(MouseEvent.CLICK, hey); 
            } 
        } 
         
        private function hey(e:MouseEvent):void 
        { 
            //What I would like to do in this function is get the "i" variable that is associated with each movieclip.     
        }     
    }     
}