![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Ставилась задача, при клике на динамическое текстовое поле (ввода), переместить каретку (курсор) не туда, куда произвольно ткнул пользователь, а в строго определенное место.
В целом задача решена this.createTextField("pole", this.getNextHighestDepth(), 20, 20, 300, 22);
pole.border=true
pole.type="input";
pole.text="мой текст тут-><- курсор";
au=true
wait=100 // менее 100 начинает работать нестабильно
pole.onSetFocus=function(){
if (au){
au=false
setTimeout(function(){
Selection.setFocus(null)
Selection.setFocus(pole)
Selection.setSelection(15,15)
au=true
},wait)
}
}
Т.е. целую десятую секунды. Думается это весьма много. Вопрос: это данность или как-нибудь можно убыстрить процесс? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Делать это в следующем отрисованном кадре.
|
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
Вернее тут та же самая зависимость: если прошло около 100 мс, то результат скорее всего будет корректным (например 4-5 кадров при 25 fps), если меньше 100 мс, то скорее всего выделиться строка от нужной позиции до кликнутого фрагмента. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вполне себе замечательно работает.
|
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
а зачем тут вообще юзать setTimeout ?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что сразу нельзя ставить выделение.
|
|
|||||
|
Да, почему то нужно дожидаться следующего кадра...
__________________
"We Are The Champions My Friends!" Queen |
|
|||||
|
Banned
[+4 01.02.09]
[+1 01.02.09] |
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 04:38. |
|
|
« Предыдущая тема | Следующая тема » |
|
|