I think the static method would work if I were just doing rectangles, but with lineTo, curveTo I think it needs to be an object.
A new thought that occurred to me: Have an object that will have a fill sprite and a stroke sprite, separate from each other. Then if you call lineStyle() with the inner:Boolean = true anytime you call a drawing command it would draw a stroke in the stroke Sprite but offset all the values so the stroke is inside. If you specify overlap:Boolean = false; then the object would compensate so that the stroke does not overlap the fill. It may work, but it would only really work if lineStyle pixelHinting = true, and better still, if I forced all values to be int. There's no reason for it not to be anyway. Does that make sense? Ktu On Tue, Apr 13, 2010 at 2:40 PM, Latcho <spamtha...@gmail.com> wrote: > 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 > _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders