Controlling multiple mcs with one button click

I have a spreadsheet represented with three bitmaps within mcs. I’m using an mc with four directional buttons to allow scrolling (x and Y). The complication comes when I want the header to move on the x axis, but not the y axis. Also, I’ve got an mc with the row title column and I want that to move on the y axis, but not the x axis.

This should be easy, but it is not for me. I’ve tried using an array, but with my onEnterFrame/incremental movement, I can’t figure out how to break out of the onEnterFrame. I’ve also tried a function call as seen below. I can get things to move, but not quite right, tweeking only makes things worse.

I’m getting desperate. This explanation may be a bit convoluted. But if anyone can grasp this problem, I would appreciate a helping hand.

This one will move both of my mc’s on the y axis, but only after clicking three times. The on the reverse trip, the mc moves jumps up and then increments correctly, only with that initial jump offset.

Let me show you my code (these variables are supplied by the loaded MC):

_level0.maxDown = -271;
_level0.stepY = 140.334;
_level0.maxUp = 150;
_level0.maxRight = -323;
_level0.maxLeft = 0;
_level0.stepX = 80.25;
_level0.newYPos1=150;
_level0.newYPos2=150;
_level0.newXPos1=0;
_level0.newXPos2=0;

I have a navigation mc four directional buttons, here are the functions:

downM.onRelease = function() {
 if(!(_level0.newYPos1 < _level0.maxDown)) {
 _level0.dataFile._y = _level0.oldYPos1;
 _level0.rHead._y = _level0.oldYPos2;
 _level0.oldYPos1 = _level0.newYPos1;
 _level0.oldYPos2 = _level0.newYPos2;
 _level0.newYPos1 = _level0.dataFile._y - _level0.stepY;
 _level0.newYPos2 = _level0.rHead._y - _level0.stepY;
 _level0.activateYScroll = true;
 }
}
upM.onRelease = function() {
 if(!(_level0.newYPos1 > _level0.maxUp)) {
 _level0.oldYPos1 = _level0.newYPos1;
 _level0.oldYPos2 = _level0.newYPos2;
 _level0.dataFile._y = _level0.oldYPos1;
 _level0.rHead._y = _level0.oldYPos2;
 _level0.newYPos1 = _level0.dataFile._y + _level0.stepY;
 _level0.newYPos2 = _level0.rHead._y + _level0.stepY;
 _level0.activateYScroll = true;
 }
}
leftM.onRelease = function() {
 if(_level0.newXPos1 < _level0.maxLeft) {
 _level0.oldXPos1 = _level0.newXPos1;
 _level0.oldXPos2 = _level0.newXPos2;
 _level0.dataFile._x = _level0.oldXPos1;
 _level0.head._x = _level0.oldXPos2;
 _level0.newXPos1 = _level0.dataFile._x + _level0.stepX;
 _level0.newXPos2 = _level0.head._x + _level0.stepX;
 _level0.activateXScroll = true;
 }
}
rightM.onRelease = function() {
 if(_level0.newXPos1 < _level0.maxRight) {
 _level0.oldXPos1 = _level0.newXPos1;
 _level0.oldXPos2 = _level0.newXPos2;
 _level0.dataFile._x = _level0.oldXPos1;
 _level0.head._x = _level0.oldXPos2;
 _level0.newXPos1 = _level0.dataFile._x - _level0.stepX;
 _level0.newXPos2 = _level0.head._x - _level0.stepX;
 _level0.activateXScroll = true;
 }
}

And on the main timeline (_level0) I have two functions to trigger the move:

onEnterFrame = function() {
 var togoXPos1:Number;
 var togoXPos2:Number;
 if(_Level0.activateXScroll) {
  togoXPos1 = _level0.newXPos1 - _level0.dataFile._x;
  togoXPos2 = _level0.newXPos2 - _level0.head._x;
  trace("togoXPos1= "+togoXPos1+", and togoXPos2 = "+togoXPos2);
  trace("spot is head: "+_level0.dataHead._x+" and head: "+_level0.rHead._x);
  _level0.dataFile._x += togoXPos1/5;
  _level0.head._x += togoXPos2/5;
 
 if(Math.abs(togoXPos)<0.3) {
   delete _level0.activateXScroll;
   trace("xscroll deleted");
  }
 }
}
onEnterFrame = function() {
 var togoYPos1:Number;
 var togoYPos2:Number;
 if(_Level0.activateYScroll) {
  togoYPos1 = _level0.newYPos1 - _level0.dataFile._y;
  togoYPos2 = _level0.newYPos2 - _level0.rHead._y;
  trace("togoYPos1= "+togoYPos1+", and togoYPos2 = "+togoYPos2);
  trace("spot is rHead: "+_level0.dataHead._y+" and rHead: "+_level0.rHead._y);
  _level0.dataFile._y += togoYPos1/5;
  _level0.rHead._y += togoYPos2/5;
 
 if(Math.abs(this.togoYPos)<0.3) {
   delete _level0.activateYScroll;
   trace("Yscroll deleted");
  }
 }
}