如何在不使用flex库的情况下在其底部绘制仅舍入的形状?
var _myShape:Shape = new Shape();
_myShape.graphics.lineStyle(4,0x000000,1,true,....);
_myShape.graphics.drawRoundRect(0,0,50,50,10);
答案 0 :(得分:1)
请参阅此页:Why is drawRoundRectComplex() not documented in ActionScript?
你需要“drawRoundRectComplex”
编辑:如果您不能使用Flex SDK,那么您唯一的其他“真实”绘图选项就是使用lineTo
和curveTo
的组合。最简单的方法是从Flex SDK中的GraphicsUtil
类复制代码。我不清楚它是否被认为是开源的,所以我不打算在这里发布。
答案 1 :(得分:1)
如果您不想使用Flex库(正如您对Glenn的回答所评论的那样)并且如果您只关注填充,则可以在精灵上使用掩蔽技术。
var sprite:Sprite = new Sprite();
sprite.graphics.beginFill(0xFF0000, 1.0);
sprite.graphics.drawRoundRect(0, 0, 300, 200, 100, 100);
sprite.graphics.endFill();
var spriteMask:Shape = new Shape();
spriteMask.graphics.beginFill(0);
spriteMask.graphics.drawRect(0, sprite.height / 2, sprite.width, sprite.height / 2);
spriteMask.graphics.endFill();
sprite.mask = spriteMask;
sprite.addChild(spriteMask);
addChild(sprite);
包括笔画有点棘手,但仍有可能。
答案 2 :(得分:0)
您可以使用GlowFilter
来模拟笔画,虽然它比真正的笔画更贵。
你也不需要面具 - 只需画两个盒子。
var s:Sprite = new Sprite;
addChild(s);
s.graphics.beginFill(0xff0000);
s.graphics.drawRoundRect(0,0,50,50,10);
s.graphics.endFill();
s.graphics.beginFill(0xff0000);
s.graphics.drawRect(0,0,50,20);
s.graphics.endFill();
s.filters = [new GlowFilter(0x0, 4, 8,8, 40)];