[]关于MouseManger中检测鼠标坐标的问题

如果scaleMode使用SCALE_NOSCALE,在mac机器上的鼠标坐标检测好像是有问题的。具体表现在MouseManger.initEvent中的两行代码:
this._point.setTo(e.pageX || e.clientX,e.pageY || e.clientY);
this._stage._canvasTransform.invertTransformPoint(this._point);
问题1: 如果包含canvas的div并不是充满整个document.body,且div本身可以滚动(canvas的宽高比div大),则第一行中的pageX, pageY应该换成offsetX, offsetY
问题2:mac上的pixelRatio是2,this._point经过矩阵转换后被放大了一倍,导致随后的check函数会认为鼠标不在stage中。

目前看上面两行代码换成下面的,初步测试没什么问题。
this._point.setTo(e.offsetX || e.clientX,e.offsetY || e.clientY);
// this._stage._canvasTransform.invertTransformPoint(this._point);

以上在各种情况下并未完全测试,只是在我们的应用中看了没问题。供参考。

已邀请:

cuixueying

赞同来自:

好的,谢谢,我们看下!

要回复问题请先

商务合作
商务合作