CocosCreator 监听粘贴事件无响应 之 引擎修改js源代码后实现

// 原本是想监听粘贴操作 发现是无响应
document.addEventListener('paste', this.onpaste);

后面发现是引擎源码阻止了该事件 找到引擎所在目录删掉 阻止事件即可。
早期没有DashBoard时,cocoscreator 安装后默认放在 C://CocosCreator 目录下。
如果是通过DashBoard下载,下载的不同版本的引擎统一放在 CocosDashboard\resources.editors\Creator\xxx
以我自己的举例 :D:\cocos\CocosDashboard\resources.editors\Creator\2.4.0\resources
使用 vscode 打开该目录,全文搜索 cc.game.canvas.addEventListener("keydown"
会找到多处


image.png
cc.game.canvas.addEventListener("keydown", function (e) {
    eventManager.dispatchEvent(new cc.Event.EventKeyboard(e.keyCode, true));
    e.preventDefault() 
    e.stopPropagation()
  }, false);
  cc.game.canvas.addEventListener("keyup", function (e) {
    eventManager.dispatchEvent(new cc.Event.EventKeyboard(e.keyCode, false));
    e.preventDefault() 
    e.stopPropagation()
  }, false);

两个监听函数都删掉x下面两行代码

e.preventDefault() 
e.stopPropagation()

删掉后,重启编辑器,就能监听到粘贴事件了

document.addEventListener('paste', this.onpaste);

如果后续进行编辑器升级 比如2.4.0 升级到2.4.3 就要重复上面的操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容