Flex工具提示定位不正确

时间:2010-02-19 18:56:01

标签: flex tooltip coordinates

假设我正在尝试在视图的组件左侧放置工具提示。布局可能与此类似:

<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>

知道这里发生了什么吗?

1 个答案:

答案 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);