I tried implementing your code, and tried this:
Code:
import flash.display.*;
import flash.events.*;


var buttons:Array = [box1, box2, box3];
var current:MovieClip = null;

for (var i:int = 0; i < buttons.length; i++){
  buttons[i].addEventListener(MouseEvent.MOUSE_DOWN, buttonPress);
  buttons[i].addEventListener(MouseEvent.MOUSE_DOWN, buttonPress2);
}

function buttonPress(e:MouseEvent):void{
  current = MovieClip(e.currentTarget);
  buttons[i].gotoAndPlay("clickthis");
  buttons[i].removeEventListener(MouseEvent.MOUSE_DOWN, buttonPress);
}


function buttonPress2(e:MouseEvent):void{
  if (current != null){
     current.gotoAndPlay("out2");
  }
  current = MovieClip(e.currentTarget);
  current.gotoAndPlay("over2");
}
That code gave me an error:

TypeError: Error #1010: A term is undefined and has no properties.
at shahob_website8_fla::MainTimeline/buttonPress()


Then I tried implementing the new code you gave me:
Code:
import flash.display.*;
import flash.events.*;



var buttons:Array = [box1, box2, box3];
var current:MovieClip = null;

for (var i:int = 0; i < buttons.length; i++){
  var b:MovieClip = buttons[i];
  b.addEventListener(MouseEvent.MOUSE_DOWN, buttonPress);
  b.addEventListener(MouseEvent.MOUSE_DOWN, buttonPress2);
  b.gotoAndPlay("out2");
}

function buttonPress(e:MouseEvent):void{
  current = MovieClip(e.currentTarget);
  b.gotoAndPlay("clickthis");
  b.removeEventListener(MouseEvent.MOUSE_DOWN, buttonPress);
}

function buttonPress2(e:MouseEvent):void{
  if (current != null){
     current.gotoAndPlay("out2");
  }
  current = MovieClip(e.currentTarget);
  current.gotoAndPlay("over2");
}
That one seemed as if it ignored all stop(); actions when I tested it out.

I am trying to make my buttons so that when I first click any of them, they all slide down ("clickthis"). Then after that, they play "over2", but then play "out2" when another button is clicked.

Thank you so much, hope to find a solution soon,
SK