假设我正在尝试在视图的组件左侧放置工具提示。布局可能与此类似:
<mx:HBox>
<mx:Button id="btnBack"
label="Back"
click="btnBack_click();" />
<mx:Button id="btnFirstLoadDemo"
label="First Load Demo"
click="btnFirstLoadDemo_click();" />
</mx:HBox>
我正在使用以下代码获取放置工具提示的位置:
var pt:Point = new Point(btnFirstLoadDemo.x, btnFirstLoadDemo.y);
pt = btnFirstLoadDemo.contentToGlobal(pt);
通过contentToGlobal()转换点后,点的x坐标严重不正确。
我找到了一种解决方法,只需将目标组件包装在另一个HBox中,如下所示:
<mx:HBox>
<wcb:Button id="btnBack"
label="Back"
click="btnBack_click();" />
<mx:HBox>
<wcb:Button id="btnFirstLoadDemo"
label="First Load Demo"
click="btnFirstLoadDemo_click();" />
</mx:HBox>
</mx:HBox>
知道这里发生了什么吗?
答案 0 :(得分:1)
你正在混淆坐标空间。 x
and y
位于父容器的坐标空间中,但您转换的方式就好像它们位于按钮本身的坐标空间中一样。
<mx:HBox id="container">
<mx:Button id="btnBack" />
<mx:Button id="btnFirstLoadDemo" />
</mx:HBox>
与
var pt:Point = new Point(btnFirstLoadDemo.x, btnFirstLoadDemo.y);
var globalPoint:Point = container.contentToGlobal(pt);