I meant you could take the graphic image of the actor and actually turn some of its pixels transparent using various Flash functions. Something like this, if _Mask is the mask actor and _Light is a transparent circle actor type:
First, save the original image of the actor once so we can revert to it.
var originalImage:BitmapData = _Mask.currSprite.pixels.clone();
Then, reset the image each frame:
_Mask.currSprite.pixels = originalImage.clone();
Then, draw each light source:
var rect:Rectangle = new Rectangle(0,0,_circleWidth,_circleHeight);
_Mask.currSprite.pixels.copyPixels(getImageForActorType(_Light),rect,new Point(_x,_y));
Now, since each light source image will have to be square, they will have to include a black area around the transparent circle. With this method, light sources cannot overlap that area or that black may bleed onto previous transparent sections.
Note that this would only work in Flash and is completely off the top of my head with no testing.