记一笔: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,就像闪吧的涂鸦板!
作者:ywxgod
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
E-mail:给我发邮件
出处:http://ywxgod.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。