|
|
|||||
Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
|
Фокус ввода и Selection
Недавно в одном проекте столкнулся со следующей проблемой:
Пусть я установил фокус ввода в какой-либо компонент на сцене, например TextInput. Затем я щелкаю на каком-либо MovieClip (не имеющем фокус ввода) и отслеживаю изменение фокуса в событии объекта Selection.onSetFocus. Получаю странный результат - фокус меняется сначала на null при нажатии мыши, а при отпускании возвращается в TextInput. Хотя по идее фокус ввода не должен меняться!!! Всё тщательно проверил - нигде в коде нет явных обращений ни к Selection.setFocus ни к FocusManager.setFocus и уж тем более нигде нет кода setFocus(null). Гуру, помогите, в чем может быть загвоздка? Уже вырвал все волосы . Платформа - Flash CS3, ActionScript 2.0. |
|
|||||
Регистрация: Feb 2009
Адрес: Харьков
Сообщений: 51
|
Не совсем понятно можно взглянуть на код
|
|
|||||
Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
|
Спасибо, уже разобрался
На будущее расскажу всем: Необходимо было сделать нечто вроде текстового редактора на AS2. Причем форматирование текстовых полей может быть любым. А в качестве контролов для управления шрифтом, размером шрифта - стандартные компоненты - combo box и numeric stepper (достались от предыдущих разработчиков). Соответственно если я хочу изменить размер выделенного фрагмента, то я щелкаю на numericStepper, моё текстовое поле теряет фокус ввода и его получает numericStepper. Причем получает его не в текущем, а в следующем кадре или вообще через несколько кадров. Выделение текста теряется, но я его запомпнаю, выставляю фокус ввода назад в текстовое поле по setInterval, выставляю ему Selection и TextFormat. Вся загвоздка в том, что невозможно отследить как в NumericStepper введено значение - с клавиатуры или при помощи нажатия кнопок (по крайней мере я не знаю как ) То есть если я жму кнопку и держу нажатой, то срабатывает событие 'change', фокус уходит и вместе с ним моя нажатая кнопка становится неактивной! Надеюсь не очень туманно объяснил . В итоге - буду писать свой numeric stepper, в котором можно будет узнать откуда сгенерировалось событие - от кнопок или прямым вводом с клавиатуры. Может кто-нибудь знает как по-другому? |
Часовой пояс GMT +4, время: 17:03. |
|
« Предыдущая тема | Следующая тема » |
Теги |
focusmanager , selection , текст , фокус ввода |
Опции темы | |
Опции просмотра | |
|
|