Extending the functionality of the graphics object is generally done
creating a wrapper class that is passed the graphics object and then
operates on it.  There's an example for this out there that draws dotted
lines.  I'll see if I can find it.

- Dan

On 07 Mar 2007 11:49:56 -0800, Rick Schmitty <[EMAIL PROTECTED]> wrote:

  Ah, so even if you were to release the code, everyone would need my
version of the flash player to get that effect I created?

By circle I mean the rounded edge of the lineStyle creates.  If you change
line 17 (becomes more obvious with bigger sizes) in my example to something
like
pad.graphics.lineStyle(50,0xff0000,1); and draw a very short line, it
makes a circle type effect (just due to the rounded edge of the line)

You can change the "caps" property to square, which has some odd effects
when drawing free form.
pad.graphics.lineStyle(50,0xff0000,1,false,"normal","square");


Basically, I'd like to mimic the Flash IDE Brush Tool.  You can select a
circle (default), 2 ellipses, multiple rectangles and slanted rectangles as
your brush stroke

Wishlist? :)




On 3/7/07, Gordon Smith <[EMAIL PROTECTED]> wrote:
>
>    The Graphics class is a native class (i.e., one implemented in C++,
> not in AS3) in the Flash Player.
>
> What do you mean that lineTo() commands create a circle by default?
>
> - Gordon
>
>  ------------------------------
> *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Rick Schmitty
> *Sent:* Wednesday, March 07, 2007 9:53 AM
> *To:* flexcoders@yahoogroups.com
> *Subject:* [flexcoders] Is the Graphics class available in the SDK
> anywhere?
>
>  I'd like to extend the functionality of lineStyle to allow for a shape
> option.
>
> Drawing with the lineTo commands is ok, but that creates a circle by
> default, which leaves the only option of using drawRect and
> drawEllipse as methods for other strokes. This doesnt work too hot,
> if you run this example below you can see. Fast mouse movement breaks
> the line and after a while it becomes really laggy.
>
> Is there perhapse another way of doing this with AS3?
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> mouseUp="stopDraw(event)">
> <mx:Script>
> <![CDATA[
> private var isDrawing:Boolean=false;
> private var tool:Number=1;
>
> private function startDraw(event:MouseEvent):void {
> pad.graphics.moveTo(event.localX,event.localY);
> isDrawing=true;
> }
>
> private function onMouseMove(event:MouseEvent):void {
> if (!isDrawing) return;
> switch (tool) {
> case 1:
> pad.graphics.lineStyle(10,0xff0000,1);
> pad.graphics.lineTo(event.localX,event.localY);
> break;
> case 2:
> pad.graphics.lineStyle(1,0x00ff00,1);
> pad.graphics.beginFill(0x00ff00,1);
> pad.graphics.drawEllipse(event.localX,event.localY,25,5);
> break;
> case 3:
> pad.graphics.lineStyle(1,0x0000ff,1);
> pad.graphics.beginFill(0x0000ff,1);
> pad.graphics.drawRect(event.localX,event.localY,15,15);
> break;
> }
> }
>
> private function stopDraw(event:MouseEvent):void {
> isDrawing=false;
> }
>
> private function clear():void {
> pad.graphics.clear();
> }
> ]]>
> </mx:Script>
> <mx:Panel title="Graphics Draw Test">
>
> <mx:Canvas width="500" height="500" mouseDown="startDraw(event)"
> mouseMove="onMouseMove(event)" id="pad">
>
> </mx:Canvas>
>
> <mx:ControlBar>
> <mx:Button label="Pencil" click="{tool=1}"/>
> <mx:Button label="Brush" click="{tool=2}"/>
> <mx:Button label="Square" click="{tool=3}"/>
> <mx:Button label="Clear" click="clear()"/>
> </mx:ControlBar>
> </mx:Panel>
>
> </mx:Application>
>
>

Reply via email to