Character walking help

OK, I have been working on a small game for a while now. So far I have my character and he can walk around. If I press the arrow keys he will face the way I press and then moves in that direction. Now that part is fine, but it still has a few problems that I need help on. Here is the code that I have to help you understand what I’m talking about.


 
onClipEvent (enterFrame) {
 if (Key.isDown(key.LEFT)) {
  if (_currentframe != 6) {
   gotoAndStop(6);
  }
 } else if (Key.isDown(key.RIGHT)) {
  if (_currentframe != 8) {
   gotoAndStop(8);
  }
 } else {
  if (_currentframe == 6) {
   gotoAndStop(5);
  }
  if (_currentframe == 8) {
   gotoAndStop(7);
  }
 }
 if (Key.isDown(key.UP)) {
  if (_currentframe != 4) {
   gotoAndStop(4);
  }
 } else if (Key.isDown(key.DOWN)) {
  if (_currentframe != 2) {
   gotoAndStop(2);
  }
 } else {
  if (_currentframe == 4) {
   gotoAndStop(3);
  }
  if (_currentframe == 2) {
   gotoAndStop(1);
  }
 }
 
 movespeed = 2; 
} 
onClipEvent (enterFrame) { 
   if (Key.isDown(Key.RIGHT)) {   
      _x+= movespeed; 
   } 
   if (Key.isDown(Key.LEFT)) {   
      _x-= movespeed; 
   } 
   if (Key.isDown(Key.UP)) {   
      _y-= movespeed; 
   } 
   if (Key.isDown(Key.DOWN)) {   
      _y+= movespeed; 
   }
   
}
 

Now the way I have it is, in the character movie clip, I have a seperate movie clip that holds all of the animation. What I mean is on the first frame, the character is facing down, second frame has a movie clip of him walking down. The third is him facing up, fourth is a movie clip of him walking up and so on. So with all that together nested in a single movie clip I have my guy. Now that works perfectly when I try to play it, unless I try to walk diagnolly. If I go- up,left or up,right or anything with a diagnol direction the character will move that way, but it will stop all animation. What I want, is when 2 keys like that(going diagnol) are pressed, it will not go at an angle but play and go to the right. And same for the left. I want it to be walking, lets say up, and if I press the left or right arrow key, it will cancel out the up key and just go to the left(or right). The same for down. I have tried many things, I tried to tell flash that if the two keys are down, make movespeed “_x+” or whatever, anything to get it to work. I can get the character to move in the direction that I want, but he doesn’t face that direction. this is what I can do to get the right direction:


 
onClipEvent (enterFrame) {
 if (Key.isDown(key.LEFT)) {
  if (_currentframe != 6) {
   gotoAndStop(6);
  }
 } else if (Key.isDown(key.RIGHT)) {
  if (_currentframe != 8) {
   gotoAndStop(8);
  }
 } else {
  if (_currentframe == 6) {
   gotoAndStop(5);
  }
  if (_currentframe == 8) {
   gotoAndStop(7);
  }
 }
 if (Key.isDown(key.UP)) {
  if (_currentframe != 4) {
   gotoAndStop(4);
  }
 } else if (Key.isDown(key.DOWN)) {
  if (_currentframe != 2) {
   gotoAndStop(2);
  }
 } else {
  if (_currentframe == 4) {
   gotoAndStop(3);
  }
  if (_currentframe == 2) {
   gotoAndStop(1);
  }
 }
 
 movespeed = 2; 
} 
onClipEvent (enterFrame) { 
   if (Key.isDown(Key.RIGHT)) {   
      _x+= movespeed; 
   } 
   if (Key.isDown(Key.LEFT)) {   
      _x-= movespeed; 
   } 
   if (Key.isDown(Key.UP)) {   
      _y-= movespeed; 
   } 
   if (Key.isDown(Key.DOWN)) {   
      _y+= movespeed; 
   }
   
   if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP)) { 
   _y+= movespeed;
   } 
   if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN)) { 
   _y-= movespeed;
   } 
   if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN)) {
   _y-= movespeed;   
   } 
   if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP)) { 
   _y+= movespeed;
   } 
 if (!Key.isDown(key.UP) & !Key.isDown(key.DOWN) & !Key.isDown(key.LEFT) & !Key.isDown(key.RIGHT)) {
  stop();
 }
}
 

Now with that last part added to the code, I can get the direction that I’m talking about, but not the character to face it. I have tried pretty much the same with the facing movements, but I cant seem to get the “else if” thing to work for me. Heck, I dont even really know if I need it. Now I also have one last smaller problem. With both codes, if I press the two opposing keys(up/down, left/right) the man will stop moving and he will keep playing the animation. That problem I havent really tried to do yet to be honest because I have been working on the other “main” one. If you could help me out it would be really great, I have tried lots of things to get this to work but nothing works for me. If you can tell whats wrong with the code about the facing things please help. Also, I want to know one thing. I dont neccesarily want you to go try to do this if its too dificult to do. But, is it possible to have each key be dominant? By that I mean, If I am going left, can I press up and move up while still holding left. And with the same character can I press up, but then hit left and he starts going left while holding left? It might sound a lot like what I have already said, but it is different. If you dont see what I’m saying dont worry because its difficult to explain. Well please help because it would be very nice to get this the way I want. If you need more information, just ask and I can tell ya anything you need. I would put the .fla but I dont know how, sorry. Well thanks if you can help.

Sorry, I forgot to mention, I am doing this with Flash MX 2004.