使用localToGlobal堆叠
我有这段代码(见id = search):
<s:NavigatorContent id="clients" width="100%" height="100%" >
<s:layout>
<s:VerticalLayout gap="0"
paddingBottom="0"
paddingLeft="0"
paddingRight="0"
paddingTop="0"/>
</s:layout>
<s:SkinnableContainer backgroundColor="0xF3F3F3" width="100%" height="40">
<s:layout>
<s:HorizontalLayout verticalAlign="middle"
paddingLeft="3"
paddingBottom="2"
paddingTop="2"
paddingRight="3"/>
</s:layout>
<s:Button id="addClientBtn"
label="{resourceManager.getString(
'myResources','workplace.addClientBtn')}"
icon="{Images.add}"
click="{addClient()}"
doubleClickEnabled="true"
doubleClick="{openHelp('NewClient')}"/>
<s:Spacer width="100%" />
<components:SearchClients id="search"/>
</s:SkinnableContainer>
</s:NavigatorContent>
在creationComplete事件中 - &gt;
search.localToGlobal( new Point(search.x,search.y))
Output returns
(x=0, y=32)
但在视觉上我看到这个输出是错误的。应该像〜(x = 300,y = 32)
有人可以帮忙吗?
答案 0 :(得分:0)
您计算相对于搜索的点,因此您需要设置零点:
search.localToGlobal(new Point(0, 0));
答案 1 :(得分:0)
这不太正确:
search.localToGlobal(new Point(search.x,search.y));
search.x和search.y是相对于NavigationContainer的坐标,其中search.localToGlocal期望相对于搜索点,即x,y指向搜索本地点并将它们转换为全局坐标。
我想你想要的是:
search.localToGlobal(new Point(0,0));
您可能想要检查ViewStack的creationPolicy(默认情况下是auto),如果此视图是进行此计算时的第一个视图。默认情况下,在调用应用程序creationComplete方法时,视图堆栈中只存在一个视图(第一个)。