Приведенный ниже код работает аналогично карандашу из Paint.
Вопрос следующий
Как я понимаю переменная stage представлена на экране закрашенным прямоугольником.
Стока stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseListner); регистрирует приемник для событий мыши именно для этой переменной. Тогда почему рисование происходит и за пределами прямоугольника?

Код AS3:
package
{
import flash.display.*;
import flash.events.*;
public class graf extends Sprite
{
public function graf ()
{
var xx,yy :uint;
xx=this.stage.stageWidth;
yy=this.stage.stageHeight;
this.stage.scaleMode=StageScaleMode.SHOW_ALL;
this.graphics.lineStyle(1, 0xAAAAAA);
this.graphics.beginFill(0xf0f0f0, 1);
this.graphics.drawRect(0, 0, xx, yy);
this.graphics.endFill();
this.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseReg);
this.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUnreg);
}
public function mouseListner(e:flash.events.MouseEvent):void
{
this.graphics.lineTo(e.stageX, e.stageY);
}
public function mouseReg(e:flash.events.MouseEvent):void
{
this.graphics.moveTo(e.stageX, e.stageY);
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseListner);
}
public function mouseUnreg(e:flash.events.MouseEvent):void
{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseListner);
}
}
}