2010-02-19 101 views
0

假設我正在嘗試在我視圖上的組件左側放置工具提示。佈局可能類似於此:Flex工具提示定位不正確

<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

你在混合座標空間。 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); 
+0

哇,我是白癡,好抓,謝謝! – user277240 2010-02-19 22:57:09