Egret社区

egret 键盘事件

2014-6-12 11:29
1082922
egret中怎么处理键盘事件,好像没有找到。而且egret中的对象不能addEventListener("keydown",onkeydown);如果用document.addEventListener("keydown",onkeydown);

那么onkeydown中的this则为document,不能引用到同类中的变量或原件。求解决方案
分享到 :
3 人收藏

22 个回复

正序浏览
Wander  官方团队 | 2014-6-12 11:37:49
本帖最后由 Wander 于 2014-6-12 11:40 编辑

egret目前确实不支持键盘事件,对于你的疑问,有以下的规避方法
  1. class A {
  2.    
  3.     public b(){
  4.         
  5.         var that = this;
  6.         document.addEventListener("keydown",function(){
  7.             
  8.             console.log (that) //这里的that就是this对象
  9.         })
  10.         
  11.     }
  12.    
  13.    
  14.    
  15. }   
复制代码



cb80523  登堂入室 | 2016-10-28 09:54:58
好帖子得顶
feixiang  略有小成 | 2016-10-28 09:24:03
嗯,官方能出个pc环境扩展包就好了
lostjoker  圆转纯熟 | 2016-6-20 18:58:54
Wander 发表于 2014-6-12 11:37
egret目前确实不支持键盘事件,对于你的疑问,有以下的规避方法

但是这对移除监听又带来困扰了。

所以egret能否支持下这些keydown、mouse之类的事件,我搜了下文键盘捕获的不少
飞羽冷  登堂入室 | 2016-3-24 10:11:44
document.addEventListener("keydown",(e) => { this.keyHandler(e);});

private keyHandler(e):void{
        egret.log(e.keyCode);
        }

一般回调我都是这样使用的  虽然我知道()=>这样可以在回调中this指向还是类本身,但是谁能解释下()=>这个用法是什么意思
qibu111  圆转纯熟 | 2016-1-28 12:27:52
38820248 发表于 2016-1-26 22:20
在AS3 里面也这样用过, 有时候无法避免。

完全可以避免

点评

厉害  发表于 2016-2-17 09:21
sxtaosdo  自成一派 | 2016-1-27 10:37:30
官方应该添加一个pc环境扩展包,加入pc的一些特性,比如鼠标的over、out等,键盘的keydown等~~~

全面干掉adobe的flash
38820248  登堂入室 | 2016-1-26 22:20:29
Wander 发表于 2014-6-12 11:55
是的,对AS3开发者来说这个做法很奇葩,但是这其实是JavaScript的一种常见技巧 ...

在AS3 里面也这样用过, 有时候无法避免。
cat  登堂入室 | 2015-12-31 15:37:28
这里有个疑惑,就是为什么如果不设定var that=this;来调用that的话就会找不到方法呢
cat  登堂入室 | 2015-12-28 21:19:18
为啥官方不考虑加入键盘事件呢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

vicyan

初学乍练

积分: 帖子: 精华:

楼主热帖

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部