[AS3] Hit Test between "player" and "object" won't occur

Hello. I have been working for a bit now on a game (which I hope to finish this time), and at the same time I am trying to learn how classes work. I have gotten a bit done, but, I am having trouble with the hitTest between the Player and an object. My hope is to have the hitTest in the Terrain.as class so that when the player hits any piece of terrain I add to the stage with Terrain as it’s base class, it will activate the hitTest.

The problem is, the player isn’t even detecting the hittest, thus not stopping.

Here is my code(The code unnecessary for the hitTest was removed):

Main.as


package 
{

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.ui.Keyboard;
    import flash.events.*;
    import Player;

    public class Main extends MovieClip
    {


        //Defining player properties.

        public var player:Player = new Player();

        public function Main()
        {
            // constructor code

/*

            //Adds the player to the stage and sets its properties.
            addChild(player);
            player.x = 300;//Randomly assigned
            player.y = 169;//Randomly assigned
            player.scaleX = 2;//(possibly) temporary
            player.scaleY = 2;//(possibly) temporary
        }


    }

}

Player.as


package 
{

    import flash.display.MovieClip;

    public class Player extends MovieClip
    {
    
    public var Speed:Number = 10;
    
        public function Player()
        {
            // constructor code

        }

    }

}

Terrain.as


package 
{
    import flash.display.MovieClip;
    import flash.events.*;
    import Player;

    public class Terrain extends MovieClip
    {
        
        public var player:Player = new Player(); // Added because player was showing up as null in the trace statements.

        public function Terrain()
        {
            // constructor code

            stage.addEventListener(Event.ENTER_FRAME, playerTerrainHitTest);

            trace(this);
            trace(this.hitarea);
            trace(this.hitarea.Right);
            trace(player);
            trace(player.player_hit);
        }

        function playerTerrainHitTest(event:Event):void
        {

            if (player.player_hit.hitTestObject(this.hitarea.Right))
            {
                player.x +=  player.Speed;
            }
            if (player.player_hit.hitTestObject(this.hitarea.Left))
            {
                player.x -=  player.Speed;
            }
            if (player.player_hit.hitTestObject(this.hitarea.Top))
            {
                player.y -=  player.Speed;
            }
            if (player.player_hit.hitTestObject(this.hitarea.Bottom))
            {
                player.y +=  player.Speed;
            }
        }


    }

}

The hitarea.<DIRECTION> are all in the terrain object which is what the player actually hits (this is set up this way for when I add “depth” to the view. The player_hit is what is actually hit from the player (if that makes sense…)

Thanks for any help in advance.