![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Все мы знаем(надеюсь) о существовании класса Selection, а у него — метода getCaretIndex(). Он хороший, но он возвращает значение с начала строки в поле. Это удобно, если текстовое поле однострочное. Но у меня многострочное поле и мне нужен номер строки, в которой находится каретка, а еще лучше — ее координаты на сцене.
Кто-нибудь сталкивался с этим? Как решать? Спасибо. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Как часто надо узнавать? Теоретически есть способ с битмапдатой, но несколько раз в секунду наверно тяжеловато будет))
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Аксакалы говорили, что если, узнав положение каретки в строке и сделав предварительно весь текст белым, выделить из сего текста символ перед кареткой, а потом сфотать эту красоту в битмапдату, можно будет увидеть черный прямоугольник на белом фоне! Так говорят. Еще говорят, что знающие люди могут догадаться по форме этого прямоугольника, где была каретка - в точности до пикселя, чтоб мне провалиться! Говорят, они используют для этого инструмент с дьявольским названием getColorBoundsRect()! Я сказал всё что знаю.
А нет, не всё. Номер строки можно узнать maxscroll-ом, но чето он гонит ошибку.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 03.07.2008 в 20:49. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Пока не поборол((((
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Нужно знать что содержит твое поле. Например если бы каждая строка заканчивалась переводом строки то все было бы легко -_-
|
|
|||||
|
Цитата:
private function correctSting(str){
return str;
var tmpstr=this.body_tf.text;
this.body_tf.text=str;
var lines=this.body_tf.bottomScroll+this.body_tf.maxscroll;
var i=this.body_tf.text.length;
while(i!=-1){
var str=this.body_tf.text;
i=String(this.body_tf.text).lastIndexOf(" ",i-1);
this.body_tf.text=String(this.body_tf.text).slice(0,i+1)+"\n"+String(this.body_tf.text).slice(i+1,this.body_tf.text.length);
if(lines!=this.body_tf.bottomScroll+this.body_tf.maxscroll){
this.body_tf.text=str;
}
}
var res=this.body_tf.text;
this.body_tf.text=tmpstr;
return res;
}
Цитата:
|
|
|||||
|
Banned
[+5 15.02.09]
[++5 15.02.09] Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Ну также можно поле сделать однострочныйм туда забить весь текст, затем сделать селекшен и посмотреть значение scroll >_<
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|