![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2011
Сообщений: 38
|
package { import flash.events.KeyboardEvent; import flash.text.*; import flash.display.MovieClip; public class Mine extends MovieClip { var inputTextField:TextField = new TextField(); public function Mine () { inputTextField.type = TextFieldType.INPUT; inputTextField.addEventListener(KeyboardEvent.KEY_UP, changer1); this.addChild(inputTextField); } public function changer1(e) { if (e.keyCode==13){ trace("ch13"); } } } } |
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
так.. сложилось впечатление что я изначально не правильно вас понял и зря мучал. Проблема возникает только с textField.Когда вы мне советовали использовать textinput, я думал это событие TextEvent.TEXT_INPUT. с компонентом textinput всё раьотает (хотя я думаю и с textField все прекрасно должно работать)
myobject.addEventListener(ComponentEvent.ENTER, Handler_6); function Handler_6(e:Event):void { log.addLog("работает"); } Добавлено через 11 минут MAPUTO ну вот вышеприведенный мой код по сути ничем от вашего не отличается. Пробовал и с KEY_UP... Отличия только в том что у меня textField не динамически создаётся. он уже присутствует на сцене, и в том что он вложен еще в два объекта movieClip. но при создании прослушки я указываю полный путь к нему и проблем из за этого быть не должно. Ох уж этот AS3... уже такую работу проделал, а с какой то извиняюсь лажей, столько проблем... |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 38
|
Может поподробнее стоит описать ошибку, которую выдает компилятор?
А чтоб фон убрать - попробуй убрать обводку Последний раз редактировалось MAPUTO; 10.11.2011 в 02:11. |
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
Ошибки никакой нет. Всё прекрасно компилируется и запускается. Только вот при нажатии Enter'a не происходит того, что должно происходить.
сам этот метод addLog() рабочий. Он много раз уже использовался. Сам понимаю что если всё компилируется то ошибка какая то глупая типа "забыл тип данных указать..." но не могу понять где именно я эту ошибку допустил. Все описаные мной здесь методы и комбинации компилировались без ошибок. НО не выполнялась сама функция. Даже если просто повесить слушатель на KEY_DOWN то всё работает. а если вставить проверку то уже не работает... Добавлено через 30 минут уже ради любопытства не делаю никаких проверок, а вешаю колбэк на нажатие клавиш в котором просто выводится в лог keyCode нажатой клавиши, так вот всё прекрасно выводится для всех клавиш кроме ALT и ENTER... на эти клавиши ничего в лог не выводится. |
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
нет =( оно то работает, НО оно не отлавливает enter и alt... нажатие ентера отлавливается только объектом textInput (но он меня не устраивает)
Добавлено через 3 часа 11 минут не пойму, это я такой дурак, чего то не понимаю ? Гугл выдаёт десятки подобных проблем которые решаются описанными здесь методами. Все как один говорят одно и тоже, но у меня для textField не работает... Почему оно именно ентер не отлавливает ? |
|
|||||
|
Регистрация: Oct 2011
Сообщений: 46
|
Всё таки хотелось бы разобраться с этим вопросом... Поковырялся и возникло несколько вопросов:
1. Почему когда ставится прослушка на TextField myTextField.addEventListener(KeyboardEvent.KEY_UP, fl_MouseClickHandler_6); function fl_MouseClickHandler_6(e:KeyboardEvent):void { addLog(e.keyCode); } 2. Делаю через stage. myTextField.addEventListener(FocusEvent.FOCUS_IN, function(event:FocusEvent){ stage.addEventListener(KeyboardEvent.KEY_UP, fl_MouseClickHandler_6); }); function fl_MouseClickHandler_6(e:KeyboardEvent):void { if (e.keyCode==Keyboard.ENTER){ stage.focus=MyBtn; } addLog(e.keyCode.toString()); } 2.1 как избавиться от желтых рамок? 2.2 При первом нажатии enter'a кнопка только получает фокус, но не нажимается. А необходимо чтобы кнопка сразу же и нажималась. Добавлено через 1 час 6 минут Ё-моё... Ну наконец-то нашёлся идеальный для меня способ. Не нужны никакие заморочки с фокусом, ентер в таком случае отлично отлавливается. По-моему самое что ни на есть программное нажатие кнопки. Но почему никто не посоветовал подобный метод ? Есть какие то подкавырки? или этот способ не кошерный ? или просто никто не вспомнил ? Последний раз редактировалось noobuser; 29.11.2011 в 01:55. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|