PDA

Просмотр полной версии : курсор в дин. текстовом поле


catilina
22.02.2004, 17:10
люди, можно сделать так, чтобы курсор в дин. текстовом поле мерцал по умолчанию? еще при том, что возможность выделения в этом поле выключена...

Iv
22.02.2004, 17:25
прямого способа нет.
да и непральна эта - казать юзверю что поле в фокусе, а на самом деле оно не в фокусе...

а сделать мона просто: кидаешь мувик поверх поля с "курсором" и мигаешь...

catilina
23.02.2004, 09:57
тоже способ, но как энту мигалку двигать за последней буквой, так просто ведь не закинешь?

catilina
23.02.2004, 11:10
что же насчет фокуса: я пытаюсь сделать эмулятор набора смс-сообщения во флеш. нажимая на кнопки соответсвенно собираю буквы в дин. текстовом поле. так что мигалка просто необходима...

silin
23.02.2004, 17:45
Оригинал написал(а) catilina
тоже способ, но как энту мигалку двигать за последней буквой, так просто ведь не закинешь?
если для моноширного шрифта и однсотрочного текста, то легко..
(для многострочного текста перенос по словам не дает по простому координаты определить)

catilina
23.02.2004, 18:06
спасибо, "у" можно вручную рассчитывать, смотря на кол. строк (наверно можно).

хотелось бы на немоноширный шрифт но, кажется это уже сам макромедиа не знает как : )

catilina
23.02.2004, 19:56
а вообще как возвратить индекс строки на которой курсор находится?

Iv
24.02.2004, 13:27
если всё так запущено, то лучше задавать реальный фокус текстовому полю.
Есть такой объект Selection, при каждом нажатии мыхой на кнопу, просто добавляй соответствующую букву в поле, задавай ему принудительноо фокус и ставь курсор.

catilina
24.02.2004, 15:07
а в динамическом поле он ведь совсем и не ставится!
можно как вариант выделять selection-ом область между предпоследей и последней буквами, но это опять криво...

Iv
24.02.2004, 15:10
а что мешает сделать поле ввода?

catilina
24.02.2004, 15:28
а можно не давать юзеру вписывать с клавы в поле ввода, не знаешь?
если можно то без проблем...

Iv
24.02.2004, 15:54
можно.
на 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
да и мышь тоже, потому как мышью тоже меняется...

fiot
29.06.2004, 18:24
ребят а как сделать так что бы курсор по умолчанию мигал в заданном textfield'e type='input' ?

Nox Noctis
29.06.2004, 20:43
читать хэлп про Selection.setFocus и Selection.setSelection

fiot
29.06.2004, 21:11
читал не помогает....

он возвращяет то чно нужно, но не хочет, что то бы каретка была на своём месте.... и можно было сразу добавлять что-то с клавы...

если я не прав поправте...

fiot
29.06.2004, 21:51
уже разобрался...
TextField.prototype.onSetFocus = function() {
Selection.setFocus(this);
};