Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.09.2009, 14:49
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 1  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
По умолчанию TextArea. Позиция каретки.

Каким образом можно переместить каретку в TextArea, чтобы она находилась под курсором мыши, когда указатель находится над какой-то частью введённого текста.
Др.словами нужно сделать то же самое, что происходит при клике на тексте левой кнопкой мыши, только программно.

Старый 01.09.2009, 15:12
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
У TextField'а свойство caretIndex только для чтения.

Старый 01.09.2009, 16:10
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 3  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
Немного непонятен Ваш ответ.

Есть компонент TextArea. В нём есть текст, допустим из 20 символов. Если мне нужно переместить каретку на, скажем 10-й символ, я это сделаю таким вот нехитрым способом:
myTextArea.setSelection(10, 10).
Нужно сделать то же самое, только позиция символа должна соответствовать положению курсора мыши над текстом, например курсор может быть над 15-м символом или за пределами текста, тогда нужно каретку поставить в конец текста.

Старый 01.09.2009, 16:25
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Аа.. ну да, не подумал о там способе.
Воспользуйтесь методом getCharIndexAtPoint() TextField'a. У TextArea его нету правда, так что надо будет ссылку на текстовое поле TextArea получить.
upd: У TextArea textField свойство есть как раз.


Последний раз редактировалось udaaff; 01.09.2009 в 16:28.
Старый 01.09.2009, 17:09
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 5  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
Методом перебора выяснилось, что у TextArea компонент TextField лежит под индексом 2. Ссылку на него получил так:

Код AS3:
var myTextField:TextField = TextField(taInput.getChildAt(2));
var caretPos:int = myTextField.getCharIndexAtPoint(myTextArea.mouseX, myTextArea.mouseY);
 
myTextArea.setSelection(caretPos, caretPos);
Всё работает. Беспокоит только одно. Может есть какой-либо другой способ получить ссылку на TextField компонента TextArea не используя метод getChildAt()?

Старый 01.09.2009, 17:22
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
upd: У TextArea textField свойство есть как раз.
protected var textField:IUITextField

Старый 01.09.2009, 17:56
Касеал вне форума Посмотреть профиль Отправить личное сообщение для Касеал Найти все сообщения от Касеал
  № 7  
Ответить с цитированием
Касеал

Регистрация: Dec 2008
Сообщений: 17
Да, похожее свойство действительно есть. Спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:08.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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