EaselJS-围绕其中心旋转形状



我正在用EaselJS制作一个旋转矩形,但它并不像我想象的那样工作。

正如我所想,如果我想制作一个正方形(40x40),它在位置x=100,y=100绕其中心旋转,我需要将其注册点设置为regX=20,regY=20。

//Create a stage by getting a reference to the canvas
stage = new createjs.Stage("demoCanvas");
//Create a Shape DisplayObject.
circle = new createjs.Shape();
circle.graphics.beginFill("red").drawRect(100, 100, 40, 40);
circle.regX = circle.regY = 20;
//Add Shape instance to stage display list.
stage.addChild(circle);
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick", onTick);
function onTick() {
    circle.rotation++;
    stage.update();
}

http://jsfiddle.net/ZbZjL/14/

您在形状内的点100处绘制矩形,然后将配准点设置为20,20,这意味着您正在旋转一个巨大的形状,其中一个角有一个矩形,而另一个角(或多或少)有一个点。

在下面的例子中,我在新形状的原点绘制矩形,然后使用x和y属性放置形状本身:

//Create a stage by getting a reference to the canvas
stage = new createjs.Stage("demoCanvas");
//Create a Shape DisplayObject.
circle = new createjs.Shape();
circle.graphics.beginFill("red").drawRect(0, 0, 40, 40);
circle.regX = circle.regY = 20;
circle.x = circle.y = 100;
//Add Shape instance to stage display list.
stage.addChild(circle);
createjs.Ticker.setFPS(60);
createjs.Ticker.addEventListener("tick", onTick);
function onTick() {
    circle.rotation++;
    stage.update();
}

见小提琴。

最新更新