сори, меня смутило, что речь о спрайте, если это не битмап, то в дырку и так будет "все видно"

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Main extends Sprite
{
public function Main()
{
super();
var circle:Circle = new Circle();
var circle1:Circle = new Circle();
var line:Line = new Line();
var line1:Line = new Line();
line.x = line.y = 200;
line1.x = line1.y = 200;
circle1.x = circle1.y = 150;
line1.rotation = 45;
addChild(line1);
addChild(line);
line.addChild(circle); // могут быть чайлдами линии
addChild(circle1) // а могут и не быть
addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
addEventListener(MouseEvent.MOUSE_OUT, mouseOut);
}
private function mouseOut(e:MouseEvent):void
{
var line:Line = e.target as Line;
if (line)
{
line.uncolorize();
}
}
private function mouseOver(e:MouseEvent):void
{
var line:Line = e.target as Line;
if (line)
{
line.colorize();
}
}
}
}
import flash.display.Sprite;
class Line extends Sprite
{
public function Line()
{
graphics.beginFill(0xC0C0C0);
graphics.drawRect(-100, -5, 200, 10);
}
public function colorize():void
{
graphics.clear();
graphics.beginFill(0xFF8000);
graphics.drawRect(-100, -5, 200, 10);
}
public function uncolorize():void
{
graphics.clear();
graphics.beginFill(0xC0C0C0);
graphics.drawRect(-100, -5, 200, 10);
}
}
class Circle extends Sprite
{
public function Circle()
{
graphics.beginFill(0x0000FF);
graphics.drawCircle(0, 0, 60);
graphics.drawCircle(0, 0, 40);
}
}