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 <[email protected]
<mailto:[email protected]>> 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
<[email protected]
<mailto:[email protected]>> 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 <[email protected]
<mailto:[email protected]>> 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
[email protected]
<mailto:[email protected]>
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders