Javascript 在Animate CC 2017中使用easeljs进行拖放

Javascript 在Animate CC 2017中使用easeljs进行拖放,javascript,flash,drag-and-drop,createjs,Javascript,Flash,Drag And Drop,Createjs,我一直在使用Adobe Animate CC 2015.2中的一个HTML画布项目在舞台上拖动一个movieClip,使用中推荐的方法。我是在一台运行OS X Yosemite的MacBook Pro上做这件事的 这是我使用的代码,它工作得很好。电影剪辑在时间线第一帧的舞台上,动作在同一帧中。movieClip实例(my_mc)跟随鼠标移动-到目前为止还不错 this.my_mc.on("pressmove", function(evt){ evt.currentTarget.x = e

我一直在使用Adobe Animate CC 2015.2中的一个HTML画布项目在舞台上拖动一个movieClip,使用中推荐的方法。我是在一台运行OS X Yosemite的MacBook Pro上做这件事的

这是我使用的代码,它工作得很好。电影剪辑在时间线第一帧的舞台上,动作在同一帧中。movieClip实例(my_mc)跟随鼠标移动-到目前为止还不错

this.my_mc.on("pressmove", function(evt){
    evt.currentTarget.x = evt.stageX;
    evt.currentTarget.y = evt.stageY;
});
然而,在两个朋友的MacBook Pros上使用运行macOS Sierra的视网膜显示器,在Animate CC 2017中尝试完全相同的示例,会导致鼠标位置和movieClip位置之间出现奇怪且显著的偏移。鼠标从舞台原点(0,0)移动得越远,偏移越大

有人知道为什么会发生这种情况,或者能想出解决办法吗?我尝试过使用GlobalTopolocal进行一些修改,但这并不能解决问题

我能想到的三个主要原因是:

  • 动画CC 2017中的某些更改导致了此问题
  • 视网膜显示导致了问题
  • macOS Sierra是问题的根源
欢迎任何想法或解决方法

提前感谢,


戴夫

我想我已经解决了这个问题。以下内容似乎适用于Animate CC 2015.2和Animate CC 2017,与操作系统和显示分辨率无关

this.my_mc.on("pressmove", function(evt){
    var p = stage.globalToLocal(evt.stageX, evt.stageY);
    evt.currentTarget.x = p.x;
    evt.currentTarget.y = p.y;
});
我仍然需要弄清楚为什么在2017年动画片中需要更改,而不是在2015年动画片CC.2(抓头)中需要更改

谢谢


Dave

这是因为Animate添加了一个“响应式”舞台,用于缩放舞台内容,这意味着舞台上的x/y鼠标位置被变换。您可能能够使用
evt.localX
evt.localY