У меня есть стек просмотра, который реализует интерфейс «мастера» для выполнения новых заказов. На последней странице мастера есть кнопка с фальшивым ускорителем, с помощью которой, если они нажмут 'o', они смогут начать процесс заново.
Ниже мой обработчик:
protected function _keyDownHandler(e:KeyboardEvent):void
{
if((e.charCode == 111)) {
// stop the 'o' from getting out
trace("Cancelable : " , e.cancelable);
this.removeEventListener(KeyboardEvent.KEY_DOWN, _keyDownHandler, true);
e.stopImmediatePropagation();
e.preventDefault();
model.orderNew();
}
}
Проблема в том, что когда пользователь возвращается на страницу 1 мастера, только что набранный пользователь вводит «o» в текстовое поле фильтрации сетки данных (фильтр по фамилиям, начинающимся с «o»), что не что желательно.
Как вы можете видеть, я предпринял несколько попыток запретить это взаимодействие, но этого недостаточно, хотя бит model.orderNew()
содержит весь код для обмена страницами стека просмотра, переустанавливая фокус в txtSearchFilter и т. д. Я в тупике!
Похоже, что e.cancelable == false, возможно, именно поэтому я и получаю такое поведение ... но в документации говорится, что KEY_DOWN IS отменяется, так что ... я все еще потерялся.
Как я могу предотвратить распространение нажатия клавиши на форму?
Спасибо