Duplicate movie clip and apply function independely to each? [Flash 8]

I am trying to draw circles dynamically with actionscript, duplicate/create multiples, have them move randomly around the stage independently of each other, and have them bounce off each other if they come in contact. The hit test for the latter has not been written yet. I can’t get the circles to move independently of each other. I would appreciate any help. My code is below.

** CHANGE STAGE COLOR TO SOMETHING OTHER THAN WHITE

Here I try to make 9 movie clips, draw circles inside of them, and apply the moveRandom function to one movie clip.

//***************************************
// DECLARE FUNCTIONS AND VARIABLES
//***************************************

/////////////////////////////////////////
// DECLARE STAGE DIMENSIONS
/////////////////////////////////////////
width = 500;
height = 100;
/////////////////////////////////////////

/////////////////////////////////////////
// DECLARE drawCircle FUNCTION
/////////////////////////////////////////
// DECLARE FUNCTION NAME
// CREATE PLACE HOLDERS FOR VARIABLES PASSED WHEN CIRCLE IS DRAWN
function drawCircle(target_mc:MovieClip, radius:Number, lineThickness:Number, lineColor:Number, lineAlpha:Number):Void {
	// VALUE FOR X IS THE SAME VALUE PASSED FOR radius VARIABLE
	var x:Number = radius;
	// VALUE FOR Y IS THE SAME VALUE PASSED FOR radius VARIABLE
	var y:Number = radius;
	with (target_mc) {
		// TAKE VARIABLE PASSED AND INSERT THEM INTO THE lineStyle(); METHOD
		lineStyle(lineThickness, lineColor, lineAlpha);
		moveTo(x+radius, y);
		// CALL curveTo() METHOD 8 TIMES TO CREATE 8 POINTS TO GIVE CIRCLE ROUND APPEARANCE
		curveTo(radius+x, Math.tan(Math.PI/8)*radius+y, Math.sin(Math.PI/4)*radius+x, Math.sin(Math.PI/4)*radius+y);
		curveTo(Math.tan(Math.PI/8)*radius+x, radius+y, x, radius+y);
		curveTo(-Math.tan(Math.PI/8)*radius+x, radius+y, -Math.sin(Math.PI/4)*radius+x, Math.sin(Math.PI/4)*radius+y);
		curveTo(-radius+x, Math.tan(Math.PI/8)*radius+y, -radius+x, y);
		curveTo(-radius+x, -Math.tan(Math.PI/8)*radius+y, -Math.sin(Math.PI/4)*radius+x, -Math.sin(Math.PI/4)*radius+y);
		curveTo(-Math.tan(Math.PI/8)*radius+x, -radius+y, x, -radius+y);
		curveTo(Math.tan(Math.PI/8)*radius+x, -radius+y, Math.sin(Math.PI/4)*radius+x, -Math.sin(Math.PI/4)*radius+y);
		curveTo(radius+x, -Math.tan(Math.PI/8)*radius+y, radius+x, y);
	}
}
/////////////////////////////////////////


/////////////////////////////////////////
// DECLARE moveRandom FUNCTION
/////////////////////////////////////////
function moveRandom() {
	onLoad = function() {

    //SET BOUNDARIES OF THE STAGE
    width = 500;
    height = 100;
    //EACH MOVIE CLIP IS SET TO ONE OF THREE RANDOM SPEEDS
    speed = Math.round(Math.random()*1)+1;
    //SET INITIAL POSITIONS OF MOVIE CLIPS
    x = this._x=Math.random()*width;
    y = this._y=Math.random()*height;
    //SET END POSITIONS OF MOVIE CLIPS
    x_new = Math.random()*width;
    y_new = Math.random()*height;

    }
   //EXECUTE THE FOLLOWING CODE CONTINUOUSLY
   onEnterFrame = function() {

    //DETERMINE X MOVEMENT OF MOVIE CLIPS
	//DETERMINE WHERE THE MOVIE CLIP STARTS AND WHERE IT WILL END UP
	//MOVE THE MOVIE CLOSER TO ITS DESTINATION
    if (x_new>this._x) {

    sign_x = 1;
    } else {
    sign_x = -1;

    }
    dx = Math.abs(x_new-this._x);
    if ((dx>speed) || (dx<-speed)) {

    this._x += sign_x*speed;
    } else {
    x_new = Math.random()*width;

    }
    //y movement
    if (y_new>this._y) {

    sign_y = 1;
    } else {
    sign_y = -1;

    }
    dy = Math.abs(y_new-this._y);
    if ((dy>speed) || (dy<-speed)) {

    this._y += sign_y*speed;
    } else {
    y_new = Math.random()*height;

    }

    }
}
/////////////////////////////////////////


//***************************************
// EXECUTE CODE
//***************************************


//////////////////////////////////////////
// DRAW CIRCLE
//////////////////////////////////////////
// CREATE 9 EMPTY MOVIE CLIP ON STAGE / INSTANCE NAME: circle0_mc - circle8_mc DEPTH: 0 - 8
for (var i = 0; i < 8; i++) {
	// GENERATE RANDOM X AND Y COORDINATES.
	x = Math.random()*width;
	y = Math.random()*height;
	this.createEmptyMovieClip("circle" + i + "_mc", i, {_x:x, _y:y});
}
// PLACE circle0_mc AT _x COORDINATE 100
circle0_mc._x = 100;
// PLACE circle0_mc AT _y COORDINATE 100
circle0_mc._y = 100;
// PLACE circle1_mc AT _x COORDINATE 200
circle1_mc._x = 200;
// PLACE circle1_mc AT _y COORDINATE 200
circle1_mc._y = 200;
// PLACE circl2_mc AT _x COORDINATE 500
circle2_mc._x = 500;
// PLACE circle2_mc AT _y COORDINATE 100
circle2_mc._y = 100;
// CALL THE drawCircle FUNCTION / CREATE IN circle0_mc - circle2_mc, RADIUS OF 8, STROKE OF 7, STROKE COLOR OF white (0XFFFFFF), STROKE ALPHA AT 65%
drawCircle(circle0_mc, 8, 7, 0xFFFFFF, 65);
drawCircle(circle1_mc, 8, 7, 0xFFFFFF, 65);
drawCircle(circle2_mc, 8, 7, 0xFFFFFF, 65);
/////////////////////////////////////////

/////////////////////////////////////////
// CALL moveRandom FUNCTION
/////////////////////////////////////////
moveRandom(circle2_mc);
/////////////////////////////////////////

Here I create one movie clip, duplicate it 8 times, and try to apply the moveRandom function to one movie clip.

//***************************************
// DECLARE FUNCTIONS AND VARIABLES
//***************************************

/////////////////////////////////////////
// DECLARE STAGE DIMENSIONS
/////////////////////////////////////////
width = 500;
height = 100;
/////////////////////////////////////////

/////////////////////////////////////////
// DECLARE drawCircle FUNCTION
/////////////////////////////////////////
// DECLARE FUNCTION NAME
// CREATE PLACE HOLDERS FOR VARIABLES PASSED WHEN CIRCLE IS DRAWN
function drawCircle(target_mc:MovieClip, radius:Number, lineThickness:Number, lineColor:Number, lineAlpha:Number):Void {
	// VALUE FOR X IS THE SAME VALUE PASSED FOR radius VARIABLE
	var x:Number = radius;
	// VALUE FOR Y IS THE SAME VALUE PASSED FOR radius VARIABLE
	var y:Number = radius;
	with (target_mc) {
		// TAKE VARIABLE PASSED AND INSERT THEM INTO THE lineStyle(); METHOD
		lineStyle(lineThickness, lineColor, lineAlpha);
		moveTo(x+radius, y);
		// CALL curveTo() METHOD 8 TIMES TO CREATE 8 POINTS TO GIVE CIRCLE ROUND APPEARANCE
		curveTo(radius+x, Math.tan(Math.PI/8)*radius+y, Math.sin(Math.PI/4)*radius+x, Math.sin(Math.PI/4)*radius+y);
		curveTo(Math.tan(Math.PI/8)*radius+x, radius+y, x, radius+y);
		curveTo(-Math.tan(Math.PI/8)*radius+x, radius+y, -Math.sin(Math.PI/4)*radius+x, Math.sin(Math.PI/4)*radius+y);
		curveTo(-radius+x, Math.tan(Math.PI/8)*radius+y, -radius+x, y);
		curveTo(-radius+x, -Math.tan(Math.PI/8)*radius+y, -Math.sin(Math.PI/4)*radius+x, -Math.sin(Math.PI/4)*radius+y);
		curveTo(-Math.tan(Math.PI/8)*radius+x, -radius+y, x, -radius+y);
		curveTo(Math.tan(Math.PI/8)*radius+x, -radius+y, Math.sin(Math.PI/4)*radius+x, -Math.sin(Math.PI/4)*radius+y);
		curveTo(radius+x, -Math.tan(Math.PI/8)*radius+y, radius+x, y);
	}
}
/////////////////////////////////////////


/////////////////////////////////////////
// DECLARE moveRandom FUNCTION
/////////////////////////////////////////
function moveRandom() {
	onLoad = function() {

    //SET BOUNDARIES OF THE STAGE
    width = 500;
    height = 100;
    //EACH MOVIE CLIP IS SET TO ONE OF THREE RANDOM SPEEDS
    speed = Math.round(Math.random()*1)+1;
    //SET INITIAL POSITIONS OF MOVIE CLIPS
    x = this._x=Math.random()*width;
    y = this._y=Math.random()*height;
    //SET END POSITIONS OF MOVIE CLIPS
    x_new = Math.random()*width;
    y_new = Math.random()*height;

    }
   //EXECUTE THE FOLLOWING CODE CONTINUOUSLY
   onEnterFrame = function() {

    //DETERMINE X MOVEMENT OF MOVIE CLIPS
	//DETERMINE WHERE THE MOVIE CLIP STARTS AND WHERE IT WILL END UP
	//MOVE THE MOVIE CLOSER TO ITS DESTINATION
    if (x_new>this._x) {

    sign_x = 1;
    } else {
    sign_x = -1;

    }
    dx = Math.abs(x_new-this._x);
    if ((dx>speed) || (dx<-speed)) {

    this._x += sign_x*speed;
    } else {
    x_new = Math.random()*width;

    }
    //y movement
    if (y_new>this._y) {

    sign_y = 1;
    } else {
    sign_y = -1;

    }
    dy = Math.abs(y_new-this._y);
    if ((dy>speed) || (dy<-speed)) {

    this._y += sign_y*speed;
    } else {
    y_new = Math.random()*height;

    }

    }
}


//***************************************
// EXECUTE CODE
//***************************************


//////////////////////////////////////////
// DRAW CIRCLE
//////////////////////////////////////////
// CREATE AN EMPTY MOVIE CLIP ON STAGE / INSTANCE NAME: circle_mc DEPTH: 10
createEmptyMovieClip("circle_mc", 10);
// PLACE circle_mc AT _x COORDINATE 100
circle_mc._x = 100;
// PLACE circle_mc AT _y COORDINATE 100
circle_mc._y = 100;
// CALL THE drawCircle FUNCTION / CREATE IN circle_mc, RADIUS OF 8, STROKE OF 7, STROKE COLOR OF white (0XFFFFFF), STROKE ALPHA AT 65%
drawCircle(circle_mc, 8, 7, 0xFFFFFF, 65);
/////////////////////////////////////////

/////////////////////////////////////////
// DUPLICATE circle_mc MOVIE CLIP
/////////////////////////////////////////
// CREATE A for loop AND HAVE IT CYCLE 8 TIMES
// DUPLICATE circle_mc 8 TIMES FOR A TOTAL OF 9 INSTANCES INCLUDING THE ORIGINAL
for (var i = 0; i<8; i++) {
	// GENERATE RANDOM X AND Y COORDINATES.
	x = Math.random()*width;
	y = Math.random()*height;
	circle_mc.duplicateMovieClip("circle"+i, i, {_x:x, _y:y});
}
/////////////////////////////////////////


/////////////////////////////////////////
// CALL moveRandom FUNCTION
/////////////////////////////////////////
moveRandom(circle2);
/////////////////////////////////////////