createjs 示例中 circle.x 和 circle.y 的目的是什么?

what is the purpose of circle.x and circle.y in createjs example?

我正在尝试了解为什么 createjs 在其示例中使用此代码:

var circle = new createjs.Shape();
circle.graphics.beginFill("red").drawCircle(0, 0, 50);
circle.x = 100;
circle.y = 100;
stage.addChild(circle);

为什么画圆(0,0,50)时坐标是(0,0),却给出了circle.x和circle.y的值?

如果我在 canvas 和 运行 circle.x 上执行前两行,它们是未定义的。为什么,我以为它设置为0,0?

我很快就找到了答案。 (0,0) 是它使用的坐标,任何“circle.x”等都是偏移量。所以 (50,25) 然后 circle.x = 70 将给出 (120,25)

的新坐标

CreateJS 提供了一种简单的方法来将图形和符号视为实例,然后在创建后移动它们。

  1. 绘图坐标是形状的尺寸及其偏移方式。这决定了旋转时的行为。

  2. x 和 y 参数让您可以控制对象在父容器中的定位。因此,您可以将圆圈移动到 canvas 中的任何位置,但它的“中心”仍为 [0,0]。

将它们分开是一种非常常见的方法,可以让您将形状的尺寸与其在屏幕上的绘制位置分开考虑。一旦您开始将形状嵌套在其他容器中的容器中,尤其如此。

另一个例子是两个Shapes可以共享相同的图形实例,但在舞台上分别移动。它们具有相同的绘图指令,但可以分别缩放、平移、旋转和倾斜。