; private function mouseDownHandler(event:MouseEvent):void { shape = new Path(); pathPoints = new [new Point(event.localX, event.localY)]; shape.stroke = new SolidColorStroke(0xff0000); addElement(shape); addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function mouseMoveHandler(event:MouseEvent):void { pathPoints[pathPoints.length] = new Point(event.localX, event.localY); constructPath(); } private function mouseUpHandler(event:MouseEvent):void { pathPoints[pathPoints.length] = new Point(event.localX, event.localY); constructPath(); removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); } private function constructPath():void { var dataString:String = "M " + pathPoints[0].x + " " + pathPoints[1].y; for (var i:int = 1; i < pathPoints.length; ++i) { var pt:Point = pathPoints[i]; dataString += " L " + pt.x + " " + pt.y; } shape.data = dataString; } ]]>