[AS3]as3侦听键盘动作:Ctrl+Z,Ctrl+Y等组合键的用法示例
最近项目改版添加了关于白板的redo/undo功能,其中一个需求就是要能通过键盘的组合键Ctrl+z,Ctrl+y来实现undo、redo功能。
开始以为很简单,且as3的KeyboardEvent事件对象中有e.ctrlKey,e.shiftKey来判断是否按下了Ctrl,Shift键,但事情不是这么简单。
我们的Flash一般都是在浏览器中运行的,特别是在IE里面,如果你按下Ctrl+Z,进行撤销时或许第一次Flash能够监听到,但后面的就监听不到了,浏览器(IE)截取了键盘事件,致使Flash中的监听无效,准确的说是根本没有按键事件发出。
在闪吧有个涂鸦办,原来里面的undo,redo用的是Shift+Z和Shift+Y,不知道也是不是遇到上面的问题无法解决才用Shift呢!
不过这个问题在独立的Flash播放器和火狐浏览器中没有出现,他们都能正确监听处理Ctrl+Z,Ctrl+Y,但其他浏览器如IE就不行,IE能正确处理Ctrl+Y,再其他的浏览器我也没测试过,估计也差不多~~有兴趣的可以测试一下!如果一定要用键盘来对应undo/redo,建议用Shift+Z,Shift+Y替换常用的Ctrl+Z,Ctrl+Y,就像闪吧的涂鸦板!
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例