Просмотр полной версии : курсор в дин. текстовом поле
catilina
22.02.2004, 17:10
люди, можно сделать так, чтобы курсор в дин. текстовом поле мерцал по умолчанию? еще при том, что возможность выделения в этом поле выключена...
прямого способа нет.
да и непральна эта - казать юзверю что поле в фокусе, а на самом деле оно не в фокусе...
а сделать мона просто: кидаешь мувик поверх поля с "курсором" и мигаешь...
catilina
23.02.2004, 09:57
тоже способ, но как энту мигалку двигать за последней буквой, так просто ведь не закинешь?
catilina
23.02.2004, 11:10
что же насчет фокуса: я пытаюсь сделать эмулятор набора смс-сообщения во флеш. нажимая на кнопки соответсвенно собираю буквы в дин. текстовом поле. так что мигалка просто необходима...
Оригинал написал(а) catilina
тоже способ, но как энту мигалку двигать за последней буквой, так просто ведь не закинешь?
если для моноширного шрифта и однсотрочного текста, то легко..
(для многострочного текста перенос по словам не дает по простому координаты определить)
catilina
23.02.2004, 18:06
спасибо, "у" можно вручную рассчитывать, смотря на кол. строк (наверно можно).
хотелось бы на немоноширный шрифт но, кажется это уже сам макромедиа не знает как : )
catilina
23.02.2004, 19:56
а вообще как возвратить индекс строки на которой курсор находится?
если всё так запущено, то лучше задавать реальный фокус текстовому полю.
Есть такой объект Selection, при каждом нажатии мыхой на кнопу, просто добавляй соответствующую букву в поле, задавай ему принудительноо фокус и ставь курсор.
catilina
24.02.2004, 15:07
а в динамическом поле он ведь совсем и не ставится!
можно как вариант выделять selection-ом область между предпоследей и последней буквами, но это опять криво...
а что мешает сделать поле ввода?
catilina
24.02.2004, 15:28
а можно не давать юзеру вписывать с клавы в поле ввода, не знаешь?
если можно то без проблем...
можно.
на KeyUp смотри добавился ли символ, если да, то сноси.
Nox Noctis
24.02.2004, 16:43
лучше не кейАп а онЧенджед
TF.text = "blablablabla";
TF.defaultText = TF.text;
TF.onChanged = function() {
this.text = this.defaultText;
};
потомучта кейАп сцену рефрешит и буква успеет отобразиться
catilina
24.02.2004, 17:35
классно, вот бы еще не давать юзеру позицию курсора менять...
это видимо уже из области фантастки
Nox Noctis
24.02.2004, 18:31
скорее из области лирического эпоса :))
txt = "Jackdaws love my big sphinx of quartz..";
//
this.createTextField("TF", 1, 0, 0, 0, 0);
TF.border = TF.autoSize=true;
TF.borderColor = 0xFF6600;
TF.type = "input";
TF.textColor = 0xff6600;
TF.variable = "txt";
TF.defaultText = txt;
TF.onChanged = function() {
var cursor = Selection.getCaretIndex()-1;
cursor *= (cursor>=0);
this.text = this.defaultText;
Selection.setFocus(this);
Selection.setSelection(cursor, cursor);
};
catilina
24.02.2004, 18:38
гениально :)
catilina
24.02.2004, 18:45
wait, а ты уверен, что работает?
onChange в своем принципе не видит изменение позиции курсора, а посему и курсор меняется как по-маслу.. ;-)
Nox Noctis
24.02.2004, 18:59
сдается мне, билли, ты меня обидеть хочешь... © :))
ты проверил ? по сути своей :)
надо всего лишь скопировать этот код в пустой ролик, и скомпилить
catilina
24.02.2004, 19:07
само собой, то есть после второго мессага ;-)
копирую, и что же вижу:
появляется поле без фокуса. привожу его в фокус нажатием мыши по нему, а затем полная свобода, хоть клавой меняй, хоть дальше мышью ;-)
сорри за потенциальную обиду, но факт...
Nox Noctis
24.02.2004, 19:15
ааа... ну да, понял о чем ты.
я не учел кнопки стрелок и бэкспейс\делет\хоум\енд
catilina
24.02.2004, 19:19
да и мышь тоже, потому как мышью тоже меняется...
ребят а как сделать так что бы курсор по умолчанию мигал в заданном textfield'e type='input' ?
Nox Noctis
29.06.2004, 20:43
читать хэлп про Selection.setFocus и Selection.setSelection
читал не помогает....
он возвращяет то чно нужно, но не хочет, что то бы каретка была на своём месте.... и можно было сразу добавлять что-то с клавы...
если я не прав поправте...
уже разобрался...
TextField.prototype.onSetFocus = function() {
Selection.setFocus(this);
};
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.