Easeljs 使用 mousemove 旋转对象
Easeljs rotate object using mousemove
我在 HTML5 canvas + Easeljs
工作
我想使用鼠标旋转应用程序中的对象。思路如下:点击一个对象 > 出现带有可拖动框的圆圈 > 将此框拖到圆圈上使对象旋转。
这与 this one 有点相同的问题,但我不知道如何在 Easeljs 中执行此操作。
举例说明
现在您可以通过单击右上角的按钮(L = 左,R = 右)来旋转对象,但我希望它像这样:
点击并拖动白框使其旋转
非常感谢您的帮助!
您必须将听众添加到 mousedown
、mousemove
和 mouseup
的舞台(或者在您的情况下,可能是运动场形状)。在 this example 中,我只是在监听全局 stagemouseup
、stagemousedown
和 stagemousemove
事件。在触发 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
。
我在 HTML5 canvas + Easeljs
工作我想使用鼠标旋转应用程序中的对象。思路如下:点击一个对象 > 出现带有可拖动框的圆圈 > 将此框拖到圆圈上使对象旋转。
这与 this one 有点相同的问题,但我不知道如何在 Easeljs 中执行此操作。
举例说明
现在您可以通过单击右上角的按钮(L = 左,R = 右)来旋转对象,但我希望它像这样:
点击并拖动白框使其旋转
非常感谢您的帮助!
您必须将听众添加到 mousedown
、mousemove
和 mouseup
的舞台(或者在您的情况下,可能是运动场形状)。在 this example 中,我只是在监听全局 stagemouseup
、stagemousedown
和 stagemousemove
事件。在触发 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
。