Pong Game - HitTest/getBounds advice & guidance needed

Hi,

Im a newbie to flash mx, developing a pong style game with a football theme.

I have three symbols a cpu footballer, football and the player footballer these all have registration points in the middle.
Footballers are located at top and bottom of the screen.

See my collision detection code below which is attached to the football movie clip (this code show what happens when the ball(this) collides with the cpu).

 
//if(this.hitTest(_root.cpu))
{
   ang = (this._x-_root.cpu._x)/5;  //roughtly calculate where on the CPU player it hit
   this.xspeed += ang; //and use it as the rebound angle
   this.yspeed = this.yspeed*-1;
}
this.yspeed = 3

Only when it rebounds of a wall or hits a player does it reverse a direction using the code

this.yspeed = this.yspeed*-1;

This code worked [COLOR=black][FONT=Arial]Intermittingly, however the ball can hit the layer or cpu from the side and generally caused issues due to the registration points.[/FONT][/COLOR]
[COLOR=black][FONT=Arial][/FONT][/COLOR]
[COLOR=black][FONT=Arial]Within the hit test code is executed t would revert the direction by setting yspeed to 3 or -3, however the 3pixels distance would not clear the collision hitTest area between man and ball, a loop would occur of yspeed being set to 3/-3, 3/-3, 3/-3 etc…,[/FONT][/COLOR]

I then read about getBound and tried the method below:-

 
getlimitscpu = _root.cpu.getBounds(_root);
if (this.hitTest(getlimitscpu.yMax,getlimitscpu.xMax,true)) 
// use the same code as above to change value of yspeed

I can provide the full source code if required, but can someone help in guiding me in the right direction to solve this issue?

Let me know if some of this doesnt make sense, I know its quite a long rant!

Thanks
Rob