package com.drawingapp.tools { import flash.display.DisplayObjectContainer; import flash.events.MouseEvent; import flash.display.Sprite; public class LineTool extends Tool { private var startX:Number; private var startY:Number; private var graphic:Sprite; public function LineTool() { draw(); } public override function enable( canvas:DisplayObjectContainer ):void { graphic = new Sprite(); canvas.addChild( graphic ); graphic.mouseEnabled = false; startX = canvas.mouseX; startY = canvas.mouseY; graphic.x = startX; graphic.y = startY; stage.addEventListener( MouseEvent.MOUSE_MOVE, onMouseMove ); } public override function disable():void { stage.removeEventListener( MouseEvent.MOUSE_MOVE, onMouseMove ); } private function draw():void { graphics.lineStyle( 0, 0x0, 1 ); graphics.beginFill( 0xCCCCCC ); graphics.drawRect( 0, 0, 15, 15 ); graphics.endFill(); graphics.lineStyle( 0, 0x0, 1 ); graphics.moveTo( 3, 12 ); graphics.lineTo( 12, 3 ); } private function onMouseMove( event:MouseEvent ):void { graphic.graphics.clear(); graphic.graphics.lineStyle( 0, 0xCCCCCC, 1 ); graphic.graphics.lineTo( event.localX - startX, event.localY - startY ); } } }