2016-07-26 97 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