Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   как добавить разделитель "vRule" или просто символ "|" в "togglebuttonbar " (http://www.flasher.ru/forum/showthread.php?t=147021)

adi.belis 24.11.2010 12:11

как добавить разделитель "vRule" или просто символ "|" в "togglebuttonbar "
 
Всем привет.

как добавить разделитель "vRule" или просто символ "|" в "ToggleButtonBar" ?

всем спасибо.

alatar 24.11.2010 12:23

Как и все остальное – addChild / removeChild

adi.belis 24.11.2010 12:43

Цитата:

Как и все остальное – addChild / removeChild
"TypeError: Error #1034: Type Coercion failed: cannot convert mx.controls::VRule@83446d1 to mx.controls.Button"

есть еще варианты ?

alatar 24.11.2010 13:11

Цитата:

есть еще варианты ?
1. Не использовать ToggleButtonBar. Вместо него использовать Box, Canvas, в общем любой контейнер.
2. Наследоваться от ToggleButtonBar, переписать методы createChildren (в нем добавить разделитель), сеттер dataProvider (добавить флаг на изменения dataProvider ибо тот что есть, объявлен как private), commitProperties (при изменении dataProvider пересоздаются кнопки, соответсвенно надо заново добавить разделитель).

adi.belis 24.11.2010 13:26

первый вариант сделал все работает .
пре реализации второго варианта возникли некоторые трудности .
в методе "createChildren" непонятно где добавлять "new VRule" поскольку он переопределяется в нескольких класах (NavBar,Container,UIComponent).
Цитата:

добавить флаг на изменения dataProvider
зачем что-то добавлять , нельзя ли поменять
Код AS3:

  private var dataProviderChanged:Boolean = false;

на public ?

и последние , в каком классе находится "commitProperties немогу никак найти .

спасибо.

alatar 25.11.2010 11:07

Цитата:

зачем что-то добавлять , нельзя ли поменять на public ?
Как вы себе это представляете? Приватные свойства нельзя переопределить в наследниках, тем более изменить их облаться видимости.
Цитата:

в методе "createChildren" непонятно где добавлять "new VRule" поскольку он переопределяется в нескольких класах (NavBar,Container,UIComponent).
Сначала делаете вызов super.createChildren, потом добавляете разделитель.
Только еще надо переписать resetNavItems(), дабы ошибок не возникало при переборе всех детей.
Цитата:

в каком классе находится "commitProperties немогу никак найти .
А какая вам разница? Этот метод переписывается во всей цепочке наследования. Первое его упоминание всегда находится в UIComponent, также как и createChildren, это методы обеспечивающие жизненный цикл компонента, вместе с measure и updateDisplayList.


Часовой пояс GMT +4, время: 18:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.