Fading in the new and removing the old

I’ve been working on a project for a bit now and can’t seem to get it to do what i need. So maybe you guys can help. I’m trying to load a movieclip from the library on button press, fade it in from 0-100 and then remove the old one. i just can’t seem to get it to remove the old one AFTER fading in the new one. so if that seems confusing i’ll sum it up.

I load a movie from the library that fades in. It’s a red box. there’s 3 buttons on the stage. blue, green, and yellow. which are supposed to, on (release)
fade in a box of that color over top the red one. then when it’s at 100% alpha, remove the red box. now each button should actually load in it’s color and remove whatever color was last up. So green could be replacing blue or yellow or whatever.

Here is my code as of now. maybe you can make it better. i just can’t seem to get it to work.

this is on frame 1 of the root timeline

//globals
_global.activeColor = "RED";
_global.chooseColor = "RED";
_global.xLocation = 100;
_global.yLocation = 100;
_global.alphaMin = 0;
_global.alphaSpeed = 10;
_global.alphaMax = 100;
//
//global fadeIn function. Used in the attachBox function to fade in boxes
_global.fadeIn = function(movieName, speed) {
	if (movieName._alpha<alphaMax) {
		movieName._alpha += speed;
	}
};
//
//remove function
_global.removeBox = function() {
	removeMovieClip(_root["box"+_global.activeColor]);
};
//
//global attach movie function.
//uses the globals above so far to attach and fade in the chosen colored box
_global.attachBox = function() {
	//attach the movie clip
	_root.attachMovie("box"+chooseColor, "box"+chooseColor, _root.getNextHighestDepth(), {_x:xLocation, _y:yLocation, _alpha:alphaMin});
	//an enterFrame function
	_root["box"+chooseColor].onEnterFrame = function() {
		//call the fadeIn function
		fadeIn(this, alphaSpeed);
		if (this._alpha>=alphaMax) {
			delete this.onEnterFrame;
		}
	};
};
attachBox();

and this is on each of the buttons. i just learned that putting the attachBox() and removeBox() functions right after one another are going to execute at the same time but i can’t figure out where to put the remove box so that it works correctly.

on (release) {
	//the chooseColor changes with button color. BLU, RED, YEL, GRN
	_global.chooseColor = "GRN";
	attachBox();
	removeBox();
	_global.activeColor = _global.chooseColor;

}