按esc还是ppt按esc不能退出全屏屏,是怎么回事?

冬至,小编的双手已被封印,是时候远离鼠标键盘多出去走走了。
眼看着 2016 年就要结束,我们也该迎来 2017 年苹果那些新品的一大波爆料了。无论是 i...
既然做不到进入中国市场,不如就试着反过来,让中国的开发者更好地走出去。
不管之前苹果有多少打算,最终推向市场的应该都是异议最少的。
十一月,威锋发起#果粉防骗#话题,其中涉及到日历广告,短信推广链接,ID被盗及二手手...
维持硬件设备与系统之间紧密的联系,这是保持苹果光泽的根本~
苹果有没有给拼了命去修复这些漏洞的安全人员加鸡腿?
更新之后的飞利浦 Hue 应用为 iPad 带来了远程控制功能,自这款 Hue 灯泡在 2013 年发...
《空闲农场(Plantera)》这款游戏此前已经在 Steam 上架,凭借其可爱的画风和有趣的...
在《Toca Life: Stable》(图卡生活:马厩)这款新作当中,孩子们将会化身小小骑手,...
著名的桌游《柯尔特快车(Colt Express)》在移动平台中正式上架了,游戏的可玩性还是...
说起来自以色列的开发商 Lightricks 可能大家印象不深,但是对他家的应用一定久仰大名...
游戏开发商 Shortbreak Studios 在苹果商店当中推出了其新作 《粒子碰撞2(The Collid...
最近有一个滤镜 App 搭上引进动画而火了起来,这就是《时光相册》。它之所以能火,着...
卡尔?伯顿大神又将他的天赋带到了游戏之中,而这正是今天小编需要向各位玩家介绍的作...
苹果上个月调查发现,亚马逊平台上所谓的正版充电头以及数据线,有超过 90% 都是冒牌...
在文字输入方面,不少人还是希望能配有一个物理键盘以便能更快更舒服地进行打字操作。
显示 6 到 8 周内发货没多久,又再度回归到无货状态,一小会就卖完了?
随着MFi认证的概念越来越被消费者所熟知,但假冒的也开始增多了。
如果你觉得苹果官方推出的充电保护壳太难看的话,ThinCharge 会是一个不错的选择。
新MacBook Pro 2016到来,各种配件自然也要跟上节奏~
目前关于AirPods的发售日期尚未有最终的结论,之前有来自中国的供应链称这款无线耳机...
TAPS 其实是一个指纹贴纸,只要把它贴在手套上,用户就能够不用在大冷天里摘下手套解...
奇怪了,safari全屏按esc有时不能退出全屏
注册时间 最后登录
在线时间163 小时 UID
主题帖子人气
红苹果, 积分 220, 距离下一级还需 280 积分
奇怪了,macbook safari全屏按esc有时不能退出全屏,必须鼠标移到右上角那里点,或者按control+command+F。但如果换一个网页按esc又可以。是不是esc只限于部分类别的网页按退出才有效?


注册时间 最后登录
在线时间15 小时 UID
主题帖子人气
我也觉得奇怪。。也是这个问题。。。
注册时间 最后登录
在线时间13 小时 UID
主题帖子人气
+1 我有时候也会出现这个问题
注册时间 最后登录
在线时间371 小时 UID
主题帖子人气
我也是啊。。。郁闷哦。。
注册时间 最后登录
在线时间643 小时 UID
主题帖子人气
对未知于 15:42:13在Array发表的内容评分:人气:+1;页面地址那里带个锁的图标的退不出来,要退出换个页面点esc
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!2644人阅读
Flash Builder(3)
&&&&& 很多桌面程序运行时都是要求全屏显示,而且在退出程序之前不允许程序退出全屏模式回到一般模式(这类程序跟流氓程序不一样,因为永我仅是屏蔽了ESC键,如Alt+Tab键,Win+D键都还没有屏蔽,用户还是可以在运行该程序时正常使用其它程序)。为了实现这一功能,Google了N回,也未能找到正确的解决方法。但我从桌面程序设计的角度去思考这一问题,我认为这一问题肯定是能解决的,而且应该很简单!可就是这一问题,题整整花了我一个下午 + 一个晚上的时间!!!& 人都差点被这玩意整疯了!
在网上一搜,关于全屏如何实现很简单(这方面的网页也很多),具体方法如下:
在窗体初始化函数中加入:this.stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;即可实现。
因为AIR应用程序的主场景拥有一个displayState属性,同时AIR的运行时框架中也包含了一个StageDisplayState类,这个类为三种不同的场景模式定义了3个静态常量。使用这些类你可以让你的AIR应用程序进入下述的任意一种模式:
1.// Enter Fullscreen Interactive State&stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;2.// Enter Standard Fullscreen State&stage.displayState = StageDisplayState.FULL_SCREEN;(注意这种方式下程序的所有输入控件(如TextInput控件)不响应键盘的按键)3.// Enter Normal State&stage.displayState = StageDisplayState.NORMAL;
使用stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;确实可以实现程序全屏模式运行,但用户只要按下ESC键,程序就回到了Normal State。
接下来解决&&用户按ESC键也不能退出全屏模式。
解决思路:肯定是捕获用户按键,然后把按下ESC键的消息杀掉(说法可能不太专业,没法,对flash builder还是新手^_^)。即可解决问题!
首先:捕获用户按键
同样在窗体初始化函数中加入 addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); 注册KeyboardEvent.KEY_DOWN事件侦听器对象,只要用户一按键就会转到onKeyDown处理函数处理(如下)。
private function onKeyDown(evt:KeyboardEvent):void&&&{&&&&if(evt.keyCode == 27){&&&&&& Alert.show("ESC Key Pressed!");
&&&&}&&&&&&&&&&}
用户按键也能正常捕获了,但我捕获到ESC按键后,如何在消息队列(我是按C++理解flex也是消息驱动机制的,是否理解正确我还真不是很肯定)中杀死该按键消息呢? 我陷入了困境之中&&
除了使劲的问Google,真的别无他法了! Google, Google ,Google &&
终于在看人家的屏蔽鼠标右键的程序中看到了一个别人在鼠标按键事件响应函数中有这么一句话:e.stopPropagation();
看到了这一句,这还了得,一发不可收拾呀!哈哈&&灵感来了
我马上去查看evt:KeyboardEvent对象有那些方法,结果看到了一个preventDefault()方法。问题得以解决,程序全屏运行时用户按ESC键也不能退出全屏模式。
好景不长久呀!结果我就多玩了一下这个功能结果有发现了一个新的问题,而且这一问题也耗我时间不少!就当程序刚运行时,如果没有那一个Text控件获得输入焦点的话,只要用户按任何键,程序都无法捕获用户按键(即使你用鼠标点击该应用程序)。这就奇怪了!程序的这一现象表明:整个桌面正在运行的程序中该flash builder程序好像不是活跃的当前窗口程序,但其它语言写得程序都是刚运行程序时,该程序就是当前活跃程序呀,即使不是通过用户鼠标点击该应用程序也可以使该程序变为当前活跃程序,为何flash builder开发出来的桌面程序就不遵循这一规则了呢?!百思不得其解!我又再次陷入了困境之中&&
为了解决问题,我使劲的在Google上搜索相关flash builder程序获得焦点的内容。结果找到了在窗体初始化函数中加入
&&&&&&&&& this.stage.focus =
这句话(其意思一看就知道,不多解释了),结果我原本以为问题解决了,可以百试不爽了!结果问题由来了,前面的问题似乎解决了,但当进入全屏后,用户Alt+Tab键 或 Win+D键之后,再进入该程序,在没有某一输入控件获得焦点的情况之下,用户按ESC键时,又会推出全屏模式。
我又再次陷入了困境&&同时我也快要疯了,这在c++或者VB之类程序设计中,实现这一功能是何其的简单!而在这个FB4中,却变得如此之棘手!!!我能不疯吗?!
疯归疯,问题还是得解决呀!仔细分析问题所在,我认为还是在给stage设置焦点或者注册捕获用户按键的事件侦听器这二者那里出了问题,设置不正确。 继续Google,再Google,再Google&&结果还是无解,我跑去救助于flex的帮助系统。去查看stage的帮助文档,结果我看到了stage同样有一个addEventListener方法。此时我极其兴奋,似乎如袁隆平当年第一次在安江农校找到了第一株水稻雄性不育株一样!(当然这等小事的作用是没法跟袁老的发现相比,不要乱码我了)。于是乎,问题全部得到解决!嗨&&这么一桩小事耽误了这么多的时间,还有很多事情没完成呢!
分析这件事情的原因,我知道了,为什么我的程序不遵循一般桌面程序设计的规则(指我在上面提到的一个规则),因为flash builder 或 flex它主要是用于web程序开发的,所以的设计模式都是web程序开发的思维,而不是传统的桌面程序的设计思维。以前有一次也是花了很多时间去解决一件很简单事情(后面分析原因也是自己不理解web程序开发思路造成的),我才知道问题的本质在于我对flash builder程序设计的整体思路与其构架不了解,还是用C++的思维去理解它,能不撞得头破血流吗?!有几分杯具呀~!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:85779次
积分:1116
积分:1116
排名:千里之外
原创:13篇
转载:57篇
评论:18条
(1)(1)(1)(1)(2)(1)(1)(1)(2)(1)(1)(1)(1)(2)(4)(1)(1)(4)(4)(4)(2)(2)(1)(1)(3)(1)(2)(3)(1)(5)(7)(8)

参考资料

 

随机推荐