Egret社区

localToGlobal 转换坐标问题

2017-9-8 17:32
575018
1银子
本帖最后由 23king 于 2017-9-8 17:41 编辑

正常控件的X缩放都是1, localToGlobal转换需要validateNow 后再使用,转换得到的结果是正常的.在一个UI中我其中的一个控件 x缩放设置成-1后 ,
再用localToGlobal转换得到的是不正确的!.所以来请教下有大神遇到过吗? 怎么解决呢?


最佳答案

查看完整内容

我没有用validate now是因为界面里面没有相对布局的东西,如果有,就需要了。哈哈。所以问题应该不是坐标转换的错误。
分享到 :
0 人收藏

18 个回复

倒序浏览
wyb815  圆转纯熟 | 2017-9-8 17:32:36
23king 发表于 2017-9-11 14:33
而且你不用延迟渲染,也不用validateNow  就可以正常刷到这个值.

我没有用validate now是因为界面里面没有相对布局的东西,如果有,就需要了。哈哈。所以问题应该不是坐标转换的错误。
jet66  圆转纯熟 | 2017-9-8 18:06:42
取锚点为中心点应该不会错的
23king  圆转纯熟 | 2017-9-8 21:05:13
jet66 发表于 2017-9-8 18:06
取锚点为中心点应该不会错的

没太明白,我取所有控件坐标转换都是去他们局部坐标啊.和锚点没有关系吧.?感觉是官方的bug呀.
wyb815  圆转纯熟 | 2017-9-11 11:50:30
你试试延迟获取再看看。
23king  圆转纯熟 | 2017-9-11 11:53:37
wyb815 发表于 2017-9-11 11:50
你试试延迟获取再看看。

延迟获取也没用呀.找了论坛之前的帖子 .看到dom大神说 就2种方法 一个就是validateNow 一个就是延迟....
wyb815  圆转纯熟 | 2017-9-11 13:00:35
23king 发表于 2017-9-11 11:53
延迟获取也没用呀.找了论坛之前的帖子 .看到dom大神说 就2种方法 一个就是validateNow 一个就是延迟.... ...

可以帖下代码吗,我或许能帮到你。
23king  圆转纯熟 | 2017-9-11 13:45:44
wyb815 发表于 2017-9-11 13:00
可以帖下代码吗,我或许能帮到你。

   let target = Global.getTargetButton(GuideManager.getInstance().curGuideData.target.target, this);//查找按钮目标
            this.validateNow(); //validateNow 一遍要不然得到的坐标是错误的.
            GuideManager.getInstance().startGuide(this, target.localToGlobal().x, target.localToGlobal().y, target.width, target.height, 1, 1, );  把转换后的坐标传递进去,显示遮罩.
wyb815  圆转纯熟 | 2017-9-11 13:49:35
23king 发表于 2017-9-11 13:45
let target = Global.getTargetButton(GuideManager.getInstance().curGuideData.target.target, this ...

还需要转换一次globalToLobal到你遮罩的parent下吧?
23king  圆转纯熟 | 2017-9-11 13:59:00
wyb815 发表于 2017-9-11 13:49
还需要转换一次globalToLobal到你遮罩的parent下吧?

不用啊我只需要取到控件对应的世界坐标就好了.然后在哪个位置确定透明遮罩的位置镂空出来.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部