[AS3] Snapshot truncation(!) of Bitmap data (!)

I am getting really frustrated with this. I have tried a lot of things to get this to work but I CANNOT seem to get the tx and ty values to work properly with every frame. It works great for some frames, then all of the sudden it will cut off a portion of the front of another frame.

Is there any way to ensure that it will never happen again to any frame for any object? Like making the bitmap data larger than the actual sprite or something to create a little bit of padding for insurance?

Looking at how I handled the height, I still have no idea WHY I needed the +3 (because it was truncating 3pixels every time) but it works.

But now I am trying to get the width to work properly and I CANNOT find anything that helps. If you can help, PLEASE DO!


        function snapShot(mc:DisplayObject, scalex:Number, scaley:Number):Bitmap
        {
            var m:Matrix = new Matrix();
                m.scale(scalex,scaley);
                m.tx = mc.width/2;
                m.ty = mc.height+3;
            
            var bmpData:BitmapData = new BitmapData(mc.width, mc.height+3, true, 0x00000000);
            bmpData.draw(mc,m);
            var bmp:Bitmap = new Bitmap(bmpData);
            return bmp;
        }

Note: My mc’s have a centered registration point, this is the whole problem! I just want the entire mc to be be considered by this^.

It feels like the matrix is NEVER big enough to store all of the data somehow.