我一直在Adobe Animate CC 2015.2中使用HTML Canvas项目,使用creatjs Mouse Interaction Tutorial中推荐的方法在舞台上拖动movieClip。我在运行OS X Yosemite的MacBook Pro上这样做。
这是我使用的代码,它工作正常。 movieClip位于时间轴第一帧的舞台上,动作位于同一帧中。 movieClip实例(my_mc)跟随鼠标 - 到目前为止一直很好。
this.my_mc.on("pressmove", function(evt){
evt.currentTarget.x = evt.stageX;
evt.currentTarget.y = evt.stageY;
});
然而,在两个朋友的Animate CC 2017上尝试完全相同的例子'配备Retina Display的MacBook Pro运行macOS Sierra,导致鼠标位置和movieClip位置之间存在奇怪且显着的偏移。鼠标从舞台的原点(0,0)移动越远,偏移越大。
有谁知道为什么会这样或者可以想到一个解决方法?我使用globalToLocal尝试了一些修改,但这并没有解决问题。
我能想到的三个主要原因是:
欢迎任何想法或变通方法。
提前致谢,
戴夫
答案 0 :(得分:4)
我想我已经解决了这个问题。以下似乎适用于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;
});
我仍然需要了解为什么Animate 2017中的更改是必要的,而不是Animate CC 2015.2(刮痕)。
谢谢,
戴夫