hitTest works if moving diagonally up or down, but not diagonally left or right?

Here is what I am working on:

http://www.littlefenris.com/v2/

I have wanted to do a very interactive video game style portfolio website and I was finally inspired enough to do it after playing around on www.awesomehouseparty.com. I’m going for the same style of walking around and I have the walking down no problem. My problem is the objects that are meant to stop the character from walking (they will eventually be rocks, trees, etc…) only stop the character if you hit them from the top or bottom if you are walking in a diagonal direction. If you are walking straight left or right they stop the character just fine. If someone could help me figure this out (probably simple for someone w/ more AS experience than me) I would be eternally grateful.

Here is the code (fenris_mc being the character and fenri****Area_mc being that bright green rectangle under him meant to stop him from walking over the bright yellow squares which are called “hitSpot1_mc”, “hitSpot2_mc” etc…):

var fenrisDirection = "down";
var speed = 4;
var totalHitSpots = 3;
//SCENE CONTROLS
scene_mc.onEnterFrame = function() {
	if (Key.isDown(Key.RIGHT)) {
		fenrisDirection = "right";
		this._x -= speed;
		foreGround_mc._x -= speed;
	}
	if (Key.isDown(Key.LEFT)) {
		fenrisDirection = "left";
		this._x += speed;
		foreGround_mc._x += speed;
	}
	if (Key.isDown(Key.UP)) {
		fenrisDirection = "up";
		this._y += speed;
		foreGround_mc._y += speed;
	}
	if (Key.isDown(Key.DOWN)) {
		fenrisDirection = "down";
		this._y -= speed;
		foreGround_mc._y -= speed;
	}
};
fenris_mc.onEnterFrame = function() {
	if (fenrisDirection == "right") {
		this.gotoAndStop("right");
	}
	if (fenrisDirection == "left") {
		this.gotoAndStop("left");
	}
	if (fenrisDirection == "up") {
		this.gotoAndStop("up");
	}
	if (fenrisDirection == "down") {
		this.gotoAndStop("down");
	}
	//STOP FENRIS FROM GOING OVER OBJECT 
	for(i = 1; i <= totalHitSpots; i++){
  	if ((fenrisDirection == "right") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
    	scene_mc._x += speed;
		foreGround_mc._x += speed;
	}
	if ((fenrisDirection == "left") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._x -= speed;
		foreGround_mc._x -= speed;
	}
	if ((fenrisDirection == "down") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._y += speed;
		foreGround_mc._y += speed;
	}
	if ((fenrisDirection == "up") && (this.fenri****Area_mc.hitTest(scene_mc["hitSpot"+i+"_mc"]))) {
		scene_mc._y -= speed;
		foreGround_mc._y -= speed;
	}
	//scene_mc["hitSpot"+i+"_mc"]._visible = false;
}
}
this.onEnterFrame = function() {
	trace(fenrisDirection);
};

Again, my problem is when the character is walking in a diagonal direction and hits the yellow spots from their left or right sides. You can walk from the bottom or top diagonally and it stops the character just fine.

Thanks in advance for any help on this!