Thanks for thinking out loud :)
Can do that too if I need it. But if you ever write something generic I'd love to use / see it because I don't have the time for this now. Personally I wouldn't extend directly on shape but create some static methods like GraphicsInnerStroke.drawRect(myDispObj.graphics, linestyleObject, method arguments );

Cheers,
Latcho

atm the best thing I can come up with is an object that can recreate the draw methods, assuming that you want a stroke on it. If I am just going to stick with drawRect, drawRoundRect, and drawRoundRectComplex I can do that. Looking into 'drawing' an inner stroke when using lineTo curveTo etc and other draw commands will take a bit more work and time.

I kind of feel like it might end up being InnerStroke extends Shape, and creating public methods that are 'override's of the graphics drawing api. Just thoughts out loud.

Ktu

On Tue, Apr 13, 2010 at 12:09 PM, Latcho <spamtha...@gmail.com <mailto:spamtha...@gmail.com>> wrote:



   Hi Ktu,
   Thanks for your supportive emails.
   I'm not a newbie but I thought I might have missed something on the
   API that wasn't apparent in the as3 docs.

   It sucks to have it confirmed it isn't supported :)
   The thing is I want to stay as close to the original api as possible
   preferably without wrappers (we're not only talking about rects but
   also curved shapes are possible you see...). Though I'd be happy to
   see what you're take on it looks like :)

   Thanks,
   Latcho


   On 13-04-10 16:59, Ktu wrote:

        >From my experience, there is no API support for it. It sucks I
       know. I deal with this problem all the time.

       For transparency, the beginFill(color:uint, alpha:Number); you
       can specify alpha. With the system I have shown you, the stroke
       would be transparent over top of the original color, so a red
       square with a semi transparent blue border would produce purple
       as your border.

       If you want the stroke to be unaffected by the inside square it
       wouldn't be that hard to write a class to handle that. In fact,
       I use this so often I think I will do that.

       I should be able to finish by Thursday at the latest and I'll
       share when I'm done. If you are eager for it, the idea would be
       to have build an object, that you would specify dimensions for,
       and fill color and alpha, and also the border fill and alpha,
       then when it draws the rectangle, it incorporates the stroke
       width into consideration so that there are no graphics behind it.

       Ktu

       On Tue, Apr 13, 2010 at 7:50 AM, spank man <spamtha...@gmail.com
       <mailto:spamtha...@gmail.com> <mailto:spamtha...@gmail.com
       <mailto:spamtha...@gmail.com>>> wrote:

           nice and simple sollution,
           but not so fine if you want the inner to be semi-transparent....
           Other ideas ? So no API support on this ?


           On Tue, Apr 13, 2010 at 4:11 AM, Ktu
       <ktu_fl...@cataclysmicrewind.com
       <mailto:ktu_fl...@cataclysmicrewind.com>
       <mailto:ktu_fl...@cataclysmicrewind.com
       <mailto:ktu_fl...@cataclysmicrewind.com>>> wrote:

               When I want inside borders I do this:


               var spr:Sprite = new Sprite();
               addChild(spr);
               var g:Graphics = spr.graphics;
               g.beginFill(0xFF45A3);

               g.drawRect(0, 0, 100, 100);
               g.endFill();
               drawInsideStroke(g, 0, 0, 100, 100, 1, 0x32010B);

               function drawInsideStroke(graphics:Graphics, x:int, y:int,
               width:int, height:int, thickness:int = 1, color:uint =
       0x000000) {
                   graphics.endFill(); // for good measure, but maybe not?
                   graphics.beginFill(color);
                   graphics.drawRect(x, y, width, height);
                   graphics.drawRect( x + thickness, y + thickness, width -
               (thickness * 2), height - (thickness * 2) );
                   graphics.endFill();

               }
               trace(spr.width,spr.height);  // -> 110 110
               trace(spr.getBounds(this)) // -> (x=-5, y=-5, w=110, h=110)


               On Mon, Apr 12, 2010 at 7:14 PM, Latcho
       <spamtha...@gmail.com <mailto:spamtha...@gmail.com>
       <mailto:spamtha...@gmail.com <mailto:spamtha...@gmail.com>>> wrote:

                   Hello,
                   Something i still can't solve is that when drawing for
                   example a rect in a Shape graphics object with a fat
                   lineStyle, the line drawn is always half it's
       thicknes in
                   the inner part of the rect and half outside; This always
                   gives me headaches  when aligning, measuring,
         skinning or
                   bitmapping stuff since half the line is in the
       negative x
                   / y coordinate space of the shape..
                   I know that I can use the getBounds method to get me the
                   accurate  negative x and y offset of the (line)
       graphics,
                   but what I really want is to have the line beign drawn
                   totally within the rect. Is that possible by the default
                   graphics api ? Then please expand on my example.

                   Thanks.
                   Latcho.


                   var spr:Sprite = new Sprite();
                   addChild(spr);
                   var g:Graphics = spr.graphics;
                   g.lineStyle(10,0xff0000);
                   g.beginFill(0x0000ff);
                   g.drawRect(0,0,100,100);
                   g.endFill();
                   trace(spr.width,spr.height);  // -> 110 110
                   trace(spr.getBounds(this)) // -> (x=-5, y=-5, w=110,
       h=110)

                   _______________________________________________
                   Flashcoders mailing list
       Flashcoders@chattyfig.figleaf.com
       <mailto:Flashcoders@chattyfig.figleaf.com>
       <mailto:Flashcoders@chattyfig.figleaf.com
       <mailto:Flashcoders@chattyfig.figleaf.com>>

       http://chattyfig.figleaf.com/mailman/listinfo/flashcoders






   _______________________________________________
   Flashcoders mailing list
   Flashcoders@chattyfig.figleaf.com
   <mailto:Flashcoders@chattyfig.figleaf.com>
   http://chattyfig.figleaf.com/mailman/listinfo/flashcoders


_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to