11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 1820|回复: 2
上一主题 下一主题

[AIR Android 开发] AIR开发安卓APP 使用Back键弹出是否退出对话框

[复制链接] TA的其它主题
发表于 2019-6-29 22:35:24 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 sunarm_jk 于 2019-6-29 22:37 编辑

,按照官方的说明,“请注意:当按下“返回”键时,可调用事件 preventDefault() 方法以避免出现返回至上一应用程序的“返回”键默认行为。“菜单”和“搜索”键无默认行为。”,试了一遍又一遍,最终发现在使用event.preventDefault()方法时,如果侦听的是KeyUp事件的话,是无法阻止默认行为的,所以想要成功阻止返回,请侦听KeyDown事件。

以下是一个用于测试的文档类:

package{        import flash.display.Sprite;        import flash.events.KeyboardEvent;        import flash.events.MouseEvent;        import flash.ui.Keyboard;        import flash.desktop.NativeApplication;        import flash.text.TextField;        import flash.events.Event;        import flash.text.TextFieldAutoSize;        import flash.text.TextFormat;         /**         * 描述: 测试阻止Air For Android 默认BACK按键事件         * 作者: Frozensun         * 创建日期: 2010-12-14 21:03        */        public class Main extends Sprite        {                private var _menuBar:Sprite;                private var _txtLogger:TextField;                 public function Main()                {                        fCreateLogger();                        fCreateMenuBar();                         output("试试按下menu和返回键吧!");                         NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN, eMenuBarHandler);                }                 //创建logger显示文本                private function fCreateLogger():void                {                        _txtLogger = new TextField();                        _txtLogger.width = stage.stageWidth;                        _txtLogger.height = stage.stageHeight;                        _txtLogger.defaultTextFormat = new TextFormat(null, 20, 0xCCCCCC);                        _txtLogger.multiline = true;                        _txtLogger.selectable = false;                        _txtLogger.background = true;                        _txtLogger.backgroundColor = 0x333333;                        addChild(_txtLogger);                }                 //创建菜单                private function fCreateMenuBar():void                {                        var __W:Number = stage.stageWidth / 1.5;                        var __H:Number = __W / 2;                        _menuBar = new Sprite();                        _menuBar.graphics.beginFill(0xCCCCCC, 0.75);                        _menuBar.graphics.drawRoundRect(-__W / 2, -__H / 2, __W, __H, __H / 4, __H / 4);                        _menuBar.graphics.beginFill(0x666666, 0.8);                        _menuBar.graphics.drawCircle(0, 0, __H / 2 / 1.5);                        _menuBar.graphics.endFill();                        _menuBar.x = stage.stageWidth / 2;                        _menuBar.y = stage.stageHeight / 2;                         var __txtClose:TextField = new TextField();                        __txtClose.autoSize = TextFieldAutoSize.CENTER;                        __txtClose.defaultTextFormat = new TextFormat(null, 60, 0xCCCCCC, true);                        __txtClose.selectable = false;                        __txtClose.text = "X";                        __txtClose.x = -__txtClose.width / 2;                        __txtClose.y = -__txtClose.height / 2;                        _menuBar.addChild(__txtClose);                }                 //键盘事件                private function eMenuBarHandler(e:KeyboardEvent):void                {                        switch (e.keyCode)                        {                                case Keyboard.MENU :                                        checkMenuBar();                                        break;                                 case Keyboard.BACK :                                        e.preventDefault();                                        checkMenuBar();                                        break;                        }                         output("keyCode:", e.keyCode, " isDefaultPrevented:", e.isDefaultPrevented());                }                 //检测menuBar的显隐                private function checkMenuBar():void                {                        if (! this.contains(_menuBar))                        {                                this.addChild(_menuBar);                                _menuBar.addEventListener(MouseEvent.CLICK, eExitAppHandler);                        }                        else                        {                                this.removeChild(_menuBar);                                _menuBar.removeEventListener(MouseEvent.CLICK, eExitAppHandler);                        }                }                 //按下_menuBar时退出                private function eExitAppHandler(e:MouseEvent):void                {                        NativeApplication.nativeApplication.exit();                }                 //显示调试文本                private function output(...rest):void                {                        var __log:String = "";                        for each (var i:* in rest)                        {                                __log +=  String(i) + " ";                        }                        __log +=  "/n";                         _txtLogger.appendText(__log);                        _txtLogger.scrollV = _txtLogger.maxScrollV;                }         } }




发表于 2019-6-30 18:53:08 | 显示全部楼层
你的代码格式,真的好乱~~
回复

使用道具 举报

发表于 2019-7-4 22:19:20 | 显示全部楼层
真的是乱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表