Bitmap Eraser

[LEFT]I’m trying to make an AS3 version of senocular’s Erase and Redraw http://www.senocular.com/flash/source.php?id=0.175. I’ve gone over the code and converted it over to AS3. It all seems pretty straight forward. My problem is when I draw with the eraser it erase’s with the entire bitmap shape not just the alpha. I can not figure out why.

The below code creates the actual eraser bitmapData. A white square with a transparent circle.



var eraser:BitmapData = drawEraser();

        private function drawEraser():BitmapData {
            
            var diamX:int = 50;
            var diamY:int = 50;
            
            // Below creates a black circle that will be the eraser's shape.
            eraserShape.graphics.clear();
            eraserShape.graphics.beginFill(0x000000, 1);
            eraserShape.graphics.drawEllipse(0,0,diamX,diamY);
            eraserShape.graphics.endFill();
            
            // New bitmapData created and filled with white.
            var eraserShapeBMD:BitmapData = new BitmapData(diamX, diamY, true, 0);
            eraserShapeBMD.fillRect(eraserShapeBMD.rect, 0xFFFFFFFF);
            
            // Copy the black brush shape to the bitmapData object. Image will then be a black circle on a solid white background.
            eraserShapeBMD.draw(eraserShape);
            // Copy the red channel to the alpha channel. This leaves a solid white square with a transparent circle.
            eraserShapeBMD.copyChannel(eraserShapeBMD, eraserShapeBMD.rect, zeroPoint, BitmapDataChannel.RED, BitmapDataChannel.ALPHA);
    
            drawEraserCursor();
            return eraserShapeBMD;
        }


The below function is triggered when the mouse is pressed and moves.


private function drawPoint (xMouse:int, yMouse:int):void {            

    var zeroPoint:Point = new Point(0,0);
    selectedLayer.bitmapData.copyPixels(selectedLayer.bitmapData, eraser.rect, new Point(xMouse-eraser.width/2, yMouse-eraser.height/2), eraser, zeroPoint, false);
        
}

Any help would be great.
[/LEFT]