visto che hai pianto tanto
ti propongo questa soluzione simile alla prima ...ma funzionante e con qualcosa in più

esempio: http://www.rempox.it/forum/menu/menu_astween2.html

codice:
import mx.transitions.Tween;
import mx.transitions.easing.*;

MovieClip.prototype.gestioneBottoni=function(){

           this.onRollOver=function(){
			   if(!this.stato){
                    this.gotoAndStop(2)
			   }
           }

           this.onRollOut=function(){
                 if(!this.stato){
					 this.gotoAndStop(1)
				 }
           }

           this.onRelease=this.onReleaseOutside = function(){
                 reset(this.id)
                 this.gotoAndStop(3)
                 // più quello che deve fare
           }
}

// avvio
for(I=1;I<4;I++){
	this["istanzaClip"+I].id = I
	this["istanzaClip"+I].stato = false
	this["istanzaClip"+I].testo.text = "opz. "+I
	this["istanzaClip"+I].initY = this["istanzaClip"+I]._y
	this["istanzaClip"+I].upY = this["istanzaClip"+I]._y-20
	this["istanzaClip"+I].gestioneBottoni()
}

function reset(ID){
for(I=1;I<4;I++){
	
	this["istanzaClip"+I].id = I
	this["istanzaClip"+I].stato = false
	this["istanzaClip"+I].gotoAndStop(1)
	
	var twDWN:Tween = new Tween(this["istanzaClip"+I], "_y", Strong.easeOut, this["istanzaClip"+I]._y, this["istanzaClip"+I].initY,1,true)
}
	
	this["istanzaClip"+ID].stato = true
	var twUP:Tween = new Tween(this["istanzaClip"+ID], "_y", Strong.easeOut, this["istanzaClip"+ID].initY, (this["istanzaClip"+ID].upY),1,true)
	
}
	
istanzaClip1.gestioneBottoni()
istanzaClip2.gestioneBottoni()
istanzaClip3.gestioneBottoni()