hitTestPoint (ShapeFlag = true) not detecting collision

Hey All,

I am new to Flash and new to this forum - this is my first post, so sincerely hoping for some help!

I am trying to use hitTestPoint to test whether the x/y coordinates of many circles are colliding with the pixels of another movie clip, but it is not working. It works fine when the ShapeFlag is set to FALSE, (circle detects the boundary box), but not when ShapeFlag is set to TRUE.

Has anyone else faced this issue, and if so, any solutions?

I am attaching the code below for reference. I have spent hours trying to figure out what could be the issue, but to no avail. HELP PLEASE!!!

Class Ball - called by MAIN program multiple times to create instances of Ball and bounce them around the screen. If Ball collides with DQ (another MovieClip on stage), then it should stop moving:

package  {
 import flash.display.*;
 import flash.events.*;
 
 public class Ball extends MovieClip {
    var xcoord:int;
    var ycoord:int;
    var InitDir:int;
    var xspeed:int;
    var yspeed:int;
    var radius:int;
    var DQ:Bar = new Bar();
            
    public function Ball(DQ) {
        if (Math.random() <= .5)
        {
            InitDir = -1
        }
        else
        {
            InitDir = 1
        }
        
        xspeed = InitDir*5 + 10*Math.random()
        yspeed = InitDir*5 + 10*Math.random()
        xcoord = 5+540*Math.random();
        ycoord = 5+390*Math.random();
        radius = 2 +20*Math.random();
        //radius = 15;
        this.width = this.height = radius;
        
        this.addEventListener(Event.ENTER_FRAME, moveBall);
 }
 
 function moveBall(e:Event) {
    if (xcoord >550){
        xspeed *=-1;
    }
    
    if (xcoord <5){
        xspeed *=-1;
    }
    
    if (ycoord >400) {
        yspeed *=-1;
    }
    
    if (ycoord <5){
        yspeed *=-1;
    }
    
    chkHit();
    
    this.x = xcoord;
    this.y = ycoord;
 }
 
 function chkHit(){
     if (DQ.hitTestPoint(xcoord, ycoord,true))
        {
            xspeed = yspeed = 0;
            this.removeEventListener (Event.ENTER_FRAME, moveBall);
        }
        else
        {
            xcoord +=xspeed;
            ycoord +=yspeed;
        }
     }
 
 }
}

Class Bar:

package {
    import flash.display.MovieClip;
    
    public class Bar extends MovieClip
    {
        public var barx:int = 300;
        public var bary:int = 200;
        public var barH:int;
        public var barW:int;
                
        public function Bar()
        {
            this.x = barx;
            this.y = bary;
            //Storing Width and Height for use in the future
            barW = this.width;
            barH = this.height;

MAIN Code:

var i:int;
var DQ:Bar = new Bar();

addChild(DQ);

for (i = 1;i<=500;i++)
{
    var Circle = new Ball(DQ);
    addChild (Circle);
    
}