Your posted code is incomplete and buggy, so you wouldn't.

Let's try to code up a simple implementation of Circle which you could use to replace mcCircle.
Basically, keep all the logic and non-visual stuff. Toss anything to do with the display list. Don't inherit from Sprite or MovieClip (because you're not going to use displaylist or frame stuff). DO provide a method to blit into a provided BitmapData. In fact, let's make an interface for that.
Code:
public interface Blittable {
  public function blitInto(BitmapData bd):void;
}
Code:
public class Circle implements Blittable{
  //not shown: all your existing logic/variables, etc.
  //you'll probably have to declare some stuff that you previously inherited like x, and y.

  private var asset:BitmapData;
  private var matrix:Matrix;
  private var _x:Number;
  private var _y:Number;

  public function Circle(radius:int){
     asset = new BitmapData(radius*2, radius*2); 
     //not shown: draw into your asset. 
     matrix = new Matrix();
     _x = 0;
     _y = 0;
  }

  /**
  *draw this Circle into the provided BitmapData
  **/
  public function blitInto(bd:BitmapData):void{
     bd.draw(asset, matrix);
  }

  public function get x():Number{
    return _x;
  }

  public function get y():Number{
   return _y;
  }

  //alter matrix so that it reflects new x value.
  public function set x(v:Number):void{
    _x = v;
    matrix.tx = _x;
  }

  public function set y(v:Number):void{
    _y = v;
    matrix.ty = _y;
  }
}
And you'd use it from your main like this:
Code:
firstCircle.blitInto(canvasBitmapData);
secondCircle.blitInto(canvasBitmapData);
I'd probably create a pseudo-abstract ancestor class for all my Blittables to handle the common stuff like blitInto and the matrix manipulation.
Also, if each instance of your class is going to share the same asset, you can make it static. But don't do that if they change appearance at all since all of them would change at the same time.