2

我想画一个圆圈并将其居中对齐。我的代码没有这样做:

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
4

2 回答 2

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

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

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

drawCircle(stage.stageWidth / 2, stage.stageHeight / 2, 100);
于 2012-12-26T22:52:28.527 回答
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 属性放置它是一种更好的方法。假设你想移动那个圆圈?试图找出偏移量将是一场噩梦。

于 2012-12-27T04:18:29.867 回答