2016-07-26 111 views
2

我在HTML5画布工作+ EaseljsEaseljs使用鼠标移动

我想用我的鼠标旋转在我的应用程序对象旋转对象。想法如下:单击一个对象>出现带有可拖动框的圆形>将该框拖过圆形使对象旋转。

这是一个与this one相同的问题,但我不知道如何在Easeljs中做到这一点。

为了说明 Example

现在,您可以通过点击右上角的按钮,旋转的物体(L =左,R =右),但我想这是喜欢这里:

Example7

点击+拖动白框将使其旋转

非常感谢帮助!

回答

3

对于mousedown,mousemovemouseup,您必须将听众添加到舞台上(或者在您的情况下,可能是比赛场形状)。在this example,我只是听全球stagemouseup,stagemousedownstagemousemove事件。我不分配stagemousemove听众,直到stagemousedown被解雇。我在stagemouseup被解雇时将其删除。

对于每个stagemousemove事件,您需要找到播放器与舞台鼠标位置之间的角度。

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

然后你只需设置shape.rotation = angleInDegrees:其中shape是您的播放器,你可以不这样做将下面的公式。

Check out this working example

+1

我对这个小提琴做了一个快速编辑,使其在开始拖动时不会重置,因此您可以继续旋转它:https://jsfiddle.net/lannymcnie/hb8a7ys8/2/ – Lanny