onEnterFrame Vs Tween Class

Hi there,
I came across this code for a set of navigation _mcs:


// create an array of all nav buttons in group
var groupinfo:Array = [clip1, clip2, clip3];
// create a variable to track the currently selected button
var activebtn:MovieClip;
starty = 100;
targety = 180;
speed = 12;
// define handler function for rollovers
function grow() {
   if (this._yscale < 180) {
      this._yscale += (targety - starty)/speed;
   } 
}
// define handler function for rollouts
function shrink() {
  if (this._yscale > 100) {
     this._yscale -= (targety - starty)/speed;
  } 
}
// doRollOver: start the rollover action or process, 
// unless the button is currently selected
function doRollOver() {
   if (this != activebtn) {
      this.onEnterFrame = grow;
   }
}
// doRollOut: start the rollout action or process, 
// unless the button is currently selected
function doRollOut() {
   if (this != activebtn) {
      this.onEnterFrame = shrink;
   } 
} 
// doClick: 1) return previously selected button to normal, 2) show visual 
// indication of selected button, 3) update activebtn
function doClick() {
   activebtn.onEnterFrame = shrink;       // return previously selected to normal
 
   delete this.onEnterFrame;               // stop activity on selected mc
   this._yscale = 200;                     // change appearance of selected mc
 
   activebtn = this;                      // update pointer to current selection
}
// assign functions to each event for each button in the group
function init() {
   for (var mc in groupinfo) {  
      groupinfo[mc].onRollOver = doRollOver;
      groupinfo[mc].onRollOut = doRollOut;
      groupinfo[mc].onRelease = doClick;
   }
}
init();

And decided to do the same but instead use only the Tween Class. My newbie brain generated this code:


import mx.transitions.Tween;
import mx.transitions.easing.*;
 
var activemc:MovieClip;
myall = function(mc){
mc.onRollOver = function(){
 var upy = new Tween(mc,"_yscale",Strong.easeOut,mc._yscale,200,20,false);
 }
mc.onRollOut = function(){
 var downy = new Tween(mc,"_yscale",Strong.easeOut,mc._yscale,100,20,false);
 }
mc.onRelease = function(){
 if(this != activemc){
 new Tween(activemc,"_yscale",Strong.easeOut,this._yscale,100,20,false);
 activemc = this;
 this._yscale = 200;
 delete mc.onRollOut;
}
}
}
myall(green1);
myall(green2);
myall(green3);
myall(green4);

when I click each _mc one by one it works flawlessly but roll over them all at the same time and they all refuse to tween down to 100% scale. Please find attached fla.
Any pointers much apprerciated.
Geminian1