![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 5
|
Частично это решило проблему.
Остальное не по данному вопросу. Спасибо. Добавлено через 36 минут Так. Назрела новая проблема. Значит последовательность действий: 1. Навешиваем слушателя нажатия Enter. 2. Заполняем поля. 3. Жмем Enter. 4. Создаем MessageBox, удаляем с основного МС слушателя Enter'a, чтобы по нажатию Enter обрабатывалось закрытие MessageBox'a. 5. Делаем addChild. Фокусируемся на MessageBox. 6. Жмем Enter. Обработчик закрывает MessageBox и диспатчит событие о том, что бокс закрыт. 7. В основном МС у созданного MessageBox слушается событие закрытия, и когда оно происходит, то на сам МС снова вешается слушатель события нажатия Enter. Но это не работает... public function AddPurchaseScreen() { this.addEventListener(KeyboardEvent.KEY_DOWN, enterPressed); } private function enterPressed(e:KeyboardEvent):void { if (e.keyCode == Keyboard.ENTER) { if ("Проверка корректности") { var messageBox:MessageBox = new MessageBox(); this.removeEventListener(KeyboardEvent.KEY_DOWN, enterPressed); messageBox.messageTitle.text = "Ошибка"; messageBox.message.text = "Не все данные введены"; this.addChild(messageBox); stage.focus = messageBox; messageBox.addEventListener("okClicked", errorClosed); } } } private function errorClosed(e:Event):void { this.addEventListener(KeyboardEvent.KEY_DOWN, this.enterPressed); } public function MessageBox() { this.addEventListener(KeyboardEvent.KEY_DOWN, enterPressed); } private function enterPressed(e:KeyboardEvent):void { if (e.keyCode == Keyboard.ENTER) { this.parent.removeChild(this); e.target.removeEventListener(KeyboardEvent.KEY_DOWN, enterPressed); this.dispatchEvent(new Event("okClicked")); } } Выглядит все так: ввожу данные, жму Enter, появляется MessageBox, жму Enter и дальше по видимому запускаются обработчики и главного МС и MessageBox'a, т.к. месседж сначала закрывается, а потом снова открывается.. |
![]() |
Часовой пояс GMT +4, время: 14:15. |
|
|
« Предыдущая тема | Следующая тема » |
|
|