2009-07-15 90 views
1

我有一些自定義組件,派生自UIComponent。我重載了updateDisplayList,以便它們具有自定義外觀。我創建了一個展示這些自定義組件的平臺,但爲了正確放置它們,我必須知道自定義組件的寬度和高度。它們是動態創建的。在所有創建完成之後(creationCompleted事件爲每個事件觸發),我嘗試對它們進行佈局,但寬度/高度屬性仍爲0. 我也嘗試在佈局過程之前將它們添加到畫布。獲取動態創建的自定義組件的寬度

所以我的問題是,如何創建動態放置的自定義UIComponent,並瞭解它的寬度和高度。

感謝


編輯:

通過使用該mx_internal命名空間,我可以設置寬度和高度(使用內部$寬度和$高度字段),它看起來像它的工作。但不是那麼幹淨/很好的解決方案。

回答

1

如果你從UIComponent繼承,而不是從它的一個子類,你可能會想確保你實施的措施()方法,等等。這裏檢查出的Flex文檔上實現自己的UIComponents更多信息 - 有一個很好的一堆資料中讀到這裏,但它的所有東西,你應該知道,如果你從UIComponent直接產生:

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html

希望它有幫助!您也可以嘗試發佈一些代碼,以便我們有更具體的內容繼續下去。但有可能的是,你只是沒有實現你應該爲了檢索這些值而應該做的事情。 (你的直覺是正確的 - 你不應該深入到mx_internal才能得到你需要的東西。)

0

也許適用?

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight() 
+0

這將返回明確設置或測量的寬度,但都是零。 只有$ width/$ height字段包含創建和繪製後有用的內容。我能否以某種方式使用這些字段,或者強制組件將它們的值寫入width/height/measuredWidth ..字段? – spupek 2009-07-15 16:32:39

+0

通過使用mx_internal命名空間,我可以設置寬度和高度,它看起來像在工作。但不是那麼幹淨/很好的解決方案。 – spupek 2009-07-15 16:48:55