AS3 - 如何绘制和对齐圆?

时间:2012-12-26 21:42:11

标签: actionscript-3

我想绘制一个圆圈并将其对齐居中。我的代码不这样做:

var circle:Shape = new Shape(); // The instance name circle is created
circle.graphics.beginFill(0x990000, 1); // Fill the circle with the color 990000
circle.graphics.lineStyle(2, 0x000000); // Give the ellipse a black, 2 pixels thick line
circle.graphics.drawCircle((stage.stageWidth - 100) / 2, (stage.stageHeight - 100) / 2, 100); // Draw the circle, assigning it a x position, y position, raidius.
circle.graphics.endFill(); // End the filling of the circle
addChild(circle); // Add a child

2 个答案:

答案 0 :(得分:5)

drawCircle((stage.stageWidth - 100) / 2, (stage.stageHeight - 100) / 2, 100);

drawCircle的前两个参数是圆圈的中心的X和Y位置,而不是圆圈的左上角位置。

如果你想让你的圆圈位于舞台的中心,你只需要将圆圈的中心放在同一个位置,这样就可以像这样调用drawCircle:

drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 100);

答案 1 :(得分:4)

我认为你的方法虽然可行,但只会使你的形状变得更加困难。

考虑这种方法:

var circle:Shape = new Shape();
circle.graphics.clear();
circle.graphics.lineStyle(2,0x000000);
circle.graphics.beginFill(0x990000);
circle.graphics.drawCircle(0,0,100);
circle.graphics.endFill();
addChild(circle);
circle.x = stage.stageWidth / 2;
circle.y = stage.stageHeight/ 2;

通过在您的形状中以0,0位置绘制圆心,然后通过x和y属性放置它是一种更好的方法。假设你要移动那个圆圈?试图找出补偿将是一场噩梦。