|
|
|||||
Регистрация: Apr 2009
Сообщений: 4
|
Как отключить действие клавиши?
Есть динамическое текстовое поле, и требуется отключить действия таких клавиш как "Backspase", "Delete".
Кто-нибудь сталкивался с этим? |
|
|||||
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Т.е., на сколько я понял, вам необходимо запретить пользователю изменять уже введенный текст. При помощи onChanged отслеживайте, изменился ли уже введенный текст, и если да, то меняйте его на старое значение.
|
|
|||||
Возможно есть такой способ, но я его не знаю. Попробовал так, текст не удаляется, но каретка двигается влево.
|
|
|||||
Регистрация: Apr 2009
Сообщений: 4
|
Спасибо за помощь!
Сама идея ясна, гениально !!! Вот с реализацией загвоздка. Переменная "this.text" берет значание какого текстового поля. Пытался вот так: per = ""; down = false; _root.createTextField("T",1,50,50,100,100); _root.T.text=""; _root.T.border=true; _root.T.type="input"; var obj:Object = {}; Key.addListener(obj); per = T.text; obj.onKeyDown = function() { if (Key.isDown(Key.BACKSPACE) || Key.isDown(Key.DELETEKEY)) { T.text = per; down = true; } }; obj.onKeyUp = function() { if (down) { per = T.text; down = !down; } }; |
|
|||||
У тебя были ошибки, ты перепутал немного. Вот правильный код, в коментах посмотри я написал где были ошибки
per = ""; down = false; _root.createTextField("T",1,50,50,100,100); _root.T.text=""; _root.T.border=true; _root.T.type="input"; var obj:Object = {}; Key.addListener(obj); //per = T.text; Зачем переопределять ведь это не нужно??? obj.onKeyDown = function() { if (Key.isDown(Key.BACKSPACE) || Key.isDown(Key.DELETEKEY)) { per=T.text //Тут было наоборот T.text=per, а ведь смысл в том чтобы //на этом этапе сохранить текст в переменную down = true; } }; obj.onKeyUp = function() { if (down) { T.text=per// а тут уже тексту присваивается значение из переменной. //А было опять же наоборот per=T.text down = !down; } }; |
|
|||||
Регистрация: Apr 2009
Сообщений: 4
|
И есть еще проблема в реализации от SAMANA. Kогда нажимаем "Backspace" долго, стирает все. Как избежать этого?
Добавлено через 6 минут Спасибо за исправления |
|
|||||
Пошел другим путём, и он оказался лучше и логичнее, к тому же работает правильно.
_root.createTextField("inputText",1,0,0,200,30); inputText.type = "input"; inputText.border = true; Key.addListener(inputText); inputText.onKeyDown = function() { if (Key.isDown(Key.BACKSPACE) || Key.isDown(Key.DELETEKEY)) { this.type = "dynamic"; } }; inputText.onKeyUp = function() { this.type = "input"; }; |
|
|||||
Регистрация: Apr 2009
Сообщений: 4
|
Супер!!!
Все гениальное просто |
Часовой пояс GMT +4, время: 10:55. |
|
« Предыдущая тема | Следующая тема » |
|
|