The other way of rotating a bitmap around a center is to use a translation matrix to move it, rotate it and then move it back again.
I used
this tutorial as a referance to do it using matrix. The important part is this:
var degrees:int=charObj.rotation;
var angle_in_radians = Math.PI * 2 * (charObj.rotation / 360);
var rotationMatrix:Matrix = new Matrix();
rotationMatrix.translate(-16,-16);
rotationMatrix.rotate(angle_in_radians);
rotationMatrix.translate(16,16);
var matrixImage:BitmapData = new BitmapData(32, 32, true, 0x00000000);
matrixImage.draw(charObj.sourceBD, rotationMatrix);
You get the rotation in degrees that you want to turn, convert it into radians. Create a new rotation matrix based on that angle. Before you rotate the sprite you translate (move) it by 1/2 it's width a height so the centre of the sprite sits in the top left of the canvas you are rotating. Once you've applied the rotation matrix you move the whole thing back.
Although, to be honest this whole method is probably more costly than just making it a sprite. So unless there is a desperate need to keep an object as a bitmap (ie, you are accsessing the bitmapData every frame and don't want to call another flash render function) then you should probably just nest it inside a sprite or movie clip object as suggested above.