|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Не обрабатывается кнопка Back на мобильном
Создаю мобильный проект на Flex. Использую ViewNavigatorApplication и несколько View.
Обратная навигация осуществляется двумя способами: хардверной клавишей Back и кнопкой "Назад" в заголовке каждого View. В первом случае производятся переходы по истории открытия вкладок с помощью navigator.popView();. Во втором, программно определяется на какую вкладку нужно вернуться - navigator.pushView(views.View);. Все работает, но нужно чтобы на первом View (то что firstView) по нажатию на клавишу Back выводилась вьюшка с предложением закрыть приложение. Я оверрайдю backKeyUpHandler в главном MXML: override protected function backKeyUpHandler(event:KeyboardEvent):void { if (navigator.activeView.id == "first"){ navigator.pushView(views.MyAppExitView); } else { navigator.popView(); } } Нет мыслей как решить проблему? Спасибо. |
|
|||||
Регистрация: Apr 2010
Сообщений: 67
|
Я ViewNavigatorApplication не использую, может не совсем то что вам нужно. Вот как вешаю действия на хардварные кнопки:
//вешаем слушатель для кнопок private function enableHardwareKeyListeners(event:FlexEvent):void { NativeApplication.nativeApplication.addEventListener("keyDown", handleButtons, false, 0, true); } //функция выхода из приложения public function closeApp():void{ NativeApplication.nativeApplication.exit(); } //функция слушателя private function handleButtons(e:KeyboardEvent):void{ if(e.keyCode == Keyboard.BACK)//если кнопка Back { e.preventDefault(); if (currentState != 'general'){//если находимся не на главном view/state currentState = 'general';//идем на главный вид }else{//если находимся на главной - вызываем диалоговое окно для закрытия приложения. Для закрытия юзаем closeApp() alertShow('EXIT'); } } else if(e.keyCode == Keyboard.MENU){//если кнопка Menu e.preventDefault(); //вызываем меню или еще чего } }
__________________
Mobile Ritmxoid |
|
|||||
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" actionBarVisible="false" overlayControls="false" tabBarVisible="false" viewActivate="loadData()" viewDeactivate="die()" backKeyPressed="event.preventDefault();myCustonEvent();" >
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works. |
|
|||||
Ivanaka, спасибо. Я ещё попробую, конечно, но тогда все способы кажется перепробовал.
Добавлено через 2 минуты Genzo, и это тоже попробую Там проблема была в том, что выход по Back нужно сделать на первой View, а с остальных переход по иерархии назад. |
Часовой пояс GMT +4, время: 10:18. |
|
« Предыдущая тема | Следующая тема » |
|
|