Thursday, November 4, 2010

Flex Custom DropDown control

Если хочется сделать свой компонент типа ComboBox'a, то:

1) создаем свой класс, унаследованный от ComboBase
2) придумываем, чего мы хотим показывать по нажатию кнопки открытия списка
3) переопределяем обработчик downArrowButton_buttonDownHandler() в котором зовем методы "спрятать чего-то", "показать чего-то"
4) "чего-то" прячим и показываем через PopUpManager.bringToFront(_dropdown); не забывая выставить позицию.

Ну еще необходимо ловить следующие события (как минимум):
 - FlexMouseEvent.MOUSE_DOWN_OUTSIDE
 - FlexMouseEvent.MOUSE_WHEEL_OUTSIDE
 - SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE
 - SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE

в обработчике(обработчиках) необходимо прятать "что-то"

Ну вобщем-то за примерами можно смело идти в исходники следующих компонентов:
  - ColorPicker (public class ColorPicker extends ComboBase)
  - ComboBox (public class ComboBox extends ComboBase)
  - DateFiled (public class DateField extends ComboBase)

Лежат они в \flex_sdk_4.0.0.14159\frameworks\projects\framework\src\mx\controls\


No comments:

Post a Comment