2010-08-04 44 views
0

我正在嘗試創建一個自定義選項卡導航器,它看起來像this http://www.freeimagehosting.net/uploads/b470d024c4.jpgFlex 3 - 自定義選項卡導航器

此外,當發生翻滾時,箭頭的邊界必須爲藍色(如當前選項卡中的標籤)。

爲此,我創建了一個自定義組件:一個包含標籤和帶有3個圖像的畫布的hbox(對於必須根據當前狀態更改的箭頭提示)。 然後,我想到重疊組件以獲得藍色突出顯示的顏色(例如:箭頭按鈕3位於箭頭按鈕4之上。按鈕3中的箭頭提示圖像在箭頭外部是透明的,以便我們可以看到以下按鈕的黑色)。

我現在試圖將組件放置在畫布內......但我不能。 creationComplete事件後,我分配標籤文本,我計算組件的座標,但它沒有考慮到標籤寬度... -_-'

任何想法?

謝謝。問候,

BS_C3

回答

1

Flex Component LifeCycle閱讀起來。您應該在updateDisplayList()方法中定位和調整您的子組件的大小;不在creationComplete處理程序中。

根據何時知道它是什麼,您應該在commitProperties或createChildren中分配標籤文本。

如果你想分享一些代碼,我們可能能夠磨練確切的問題。如果您運行這樣的代碼:

myLabel.text = 'Blahblahblahblah'; 
trace(myLabel.width); 

我期望的寬度並沒有改變,以反映新的文本,因爲myLabel沒有通過它自己的組件生命週期的步驟好了嗎。

+0

非常感謝您的回答! = D 我在updateDisplayList方法上做了一個覆蓋,它很好用^ __ ^ – 2010-08-05 14:41:09