lufy's legend
标题:
缩放后,事件位置不对
[打印本页]
作者:
donnier
时间:
2017-2-15 14:51
标题:
缩放后,事件位置不对
大神我有个背景,
背景里面嵌套了一个按钮,
绑定了一个单击事件
如果我缩放这个背景, 这个按钮点击位置就不对,请问有什么好的办法吗
作者:
lufy
时间:
2017-2-15 14:57
不会吧,代码发一下我看看
作者:
donnier
时间:
2017-2-15 15:52
new InteractivePNG()
如果这个按钮是new InteractivePNG()创建的才会,如果是new LSprite()就不会
作者:
donnier
时间:
2017-2-15 15:56
这个按钮是不规则的,我不想通过缝隙点到背景,应该还是用new InteractivePNG(),但又不想缩放后,事件位置错位
我需要怎么处理,请教大神
作者:
lufy
时间:
2017-2-15 21:50
donnier 发表于 2017-2-15 15:56
这个按钮是不规则的,我不想通过缝隙点到背景,应该还是用new InteractivePNG(),但又不想缩放后,事件位置 ...
这个没办法,InteractivePNG所使用的方法目前不支持缩放
如果不是动态变化的对象的话,你可以先把图形缩放后draw到一个LBitmapData对象上,然后再放到InteractivePNG中
作者:
Rain_Golden
时间:
2018-8-20 14:03
InteractivePNG.prototype.hitTestPoint = function (x, y) {
var self = this;
var point = self.getRootCoordinate();
point.x = x - point.x;
point.y = y - point.y;
for (var i = 0, l = self.childList.length; i < l; i++) {
var child = self.childList[0];
if (!child.bitmapData._locked) {
child.bitmapData.lock();
}
var cx = point.x - child.x;
var cy = point.y - child.y;
if (cx < 0 || cx > child.bitmapData.width * child.scaleX || cy < 0 || cy > child.bitmapData.height * child.scaleY) {
continue;
}
var pixel = child.bitmapData.getPixel(Math.round(cx / child.scaleX), Math.round(cy / child.scaleY));
if (pixel && pixel[3] > 0) {
return true;
}
}
return false;
};
我也发现这个问题,自己改了一下这里,初步是可以用的了
欢迎光临 lufy's legend (http://lufylegend.com/forum/)
Powered by Discuz! X2.5