BitmapData Timer

Hi guys,
I’m very new to flash (and to this forum) and I’m trying to create this timer for a school project. It’s basically going to be a pixel stopwatch that displays a new pixel every second using the BitmapData class. I looked at a few tutorials online to piece this together. It all works fine except for when I try and get all the pixels to clear after 1 minute and restart the function. I know what I’m doing wrong is probably something very basic, but will someone please point me in the right direction?
Thanks for any help
Scott

var photoBitmap:Bitmap;			// Bitmap
var SecondsImgData:SecondsImg;	// SecondsImg bitmap (in library)
var bmpFx:Bitmap;				// Bitmap Effect
var bmpFxData:BitmapData;		// Bitmap Square
var increment:Number;			// size of each square in pixels
var i:Number=0;					// for pixel grid hotizontal increment
var j:Number=0;					// for pixel grid vertical increment
var timer:Timer;				// Timer

// Define Stage Variables
var stageW:Number = stage.stageWidth;
var stageH:Number = stage.stageHeight;

// Width (in pixels) of the drawn rectangle
	increment = 40;
	// creates an instance of SecondsImg bitmap data found in library
	SecondsImgData= new SecondsImg(0, 0);
	// creates a bitmapinstance of SecondsImgData
	photoBitmap = new Bitmap(SecondsImgData);
	// centers the counter
	photoBitmap.x = (stageW-photoBitmap.width)/2;
	photoBitmap.y = (stageH-photoBitmap.height)/2;
	photoBitmap.y = 0;
	photoBitmap.alpha = 0;
	// creates a bitmap
	bmpFxData = new BitmapData (photoBitmap.width,photoBitmap.height,false,0xFFFFFFFF);
	bmpFx = new Bitmap(bmpFxData);
	// place at the same position of existing bitmap
	bmpFx.x = photoBitmap.x;
	bmpFx.y = photoBitmap.y;
	
	// add the new bitmaps to the display list in following order
	addChild(bmpFx);
	addChild(photoBitmap);

	// Set new Timer 1 second loop infinite times
	timer = new Timer(1000,0)
	//start timer
	timer.start();
	// add listener to execute every 1 second
	timer.addEventListener(TimerEvent.TIMER,timerListener);

function timerListener(e:TimerEvent){
	// grabs the color from x,y pixel
	var color:uint = SecondsImgData.getPixel(i,j);
	// creates a new rectangle
	var square:Rectangle = new Rectangle(i,j,increment,increment);
	// fills the new rectangle with the color found in the "color" variable
	bmpFxData.fillRect(square,color);
	e.updateAfterEvent();
	j+= increment;
	if (j >=  SecondsImgData.height) {i+=increment; j=0};
	if (i >=  SecondsImgData.width) restart();

}

function restart(){
	i=0;
	j=0;
	SecondsImgData.dispose();
	bmpFxData.dispose();
	removeChild(bmpFx);
	removeChild(photoBitmap);
	timer.stop();
}
gotoAndPlay(1);