Flex 3 - настраиваемая вкладка навигатора - PullRequest
0 голосов
/ 04 августа 2010

Я пытаюсь создать настраиваемый навигатор вкладок, который должен выглядеть как this http://www.freeimagehosting.net/uploads/b470d024c4.jpg.

Кроме того, при опрокидывании границы стрелки должны быть синего цвета (например, метка на текущей вкладке).

Для этой цели я создал пользовательский компонент: hbox, содержащий метку и холст с 3 изображениями внутри (для наконечника стрелки, который должен меняться в зависимости от currentState). Затем я подумал о перекрытии компонентов, чтобы получить синий цвет подсветки (например, кнопка со стрелкой 3 находится над кнопкой со стрелкой 4. Изображение наконечника стрелки в кнопке 3 будет прозрачным вне стрелки, чтобы мы могли черный цвет следующей кнопки).

Я сейчас пытаюсь расположить компоненты внутри холста ... но не могу. После события creationComplete я назначаю текст метки и вычисляю координаты компонента, но он не учитывает ширину метки ... -_- '

Есть идеи?

Спасибо. С уважением,

BS_C3

1 Ответ

1 голос
/ 04 августа 2010

Читайте о Flex Component LifeCycle . Вы должны размещать и определять размеры своих дочерних компонентов в методе updateDisplayList (); отсутствует в обработчике creationComplete.

Вы должны назначить текст метки в commitProperties или createChildren в зависимости от того, когда вы знаете, что это такое.

Если вы хотите поделиться каким-то кодом, возможно, мы сможем определить точную проблему. Если вы запускаете такой код:

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

Я ожидаю, что ширина не изменилась, чтобы отразить новый текст, потому что myLabel еще не прошел этапы жизненного цикла своего компонента.

...