Easeljs 使用 mousemove 旋转对象

Easeljs rotate object using mousemove

我在 HTML5 canvas + Easeljs

工作

我想使用鼠标旋转应用程序中的对象。思路如下:点击一个对象 > 出现带有可拖动框的圆圈 > 将此框拖到圆圈上使对象旋转。

这与 this one 有点相同的问题,但我不知道如何在 Easeljs 中执行此操作。

举例说明

现在您可以通过单击右上角的按钮(L = 左,R = 右)来旋转对象,但我希望它像这样:

点击并拖动白框使其旋转

非常感谢您的帮助!

您必须将听众添加到 mousedownmousemovemouseup 的舞台(或者在您的情况下,可能是运动场形状)。在 this example 中,我只是在监听全局 stagemouseupstagemousedownstagemousemove 事件。在触发 stagemousedown 之前,我不会分配 stagemousemove 侦听器。然后,当 stagemouseup 被触发时,我将其删除。

对于每个 stagemousemove 事件,您需要找到玩家与舞台鼠标位置之间的角度。您可以按照以下公式执行此操作,其中 shape 是您的播放器:

var angleInRadians = Math.atan2(stage.mouseY - shape.y, stage.mouseX - shape.x);  
var angleInDegrees = angleInRadians * (180 / Math.PI);

然后你只需设置shape.rotation = angleInDegrees

Check out this working example.