###正文
我们首先来体验一下Creator在横屏游戏中Editbox的效果
-
新建一个HelloWorld工程, 并拖动一个EditBox到场景中
-
试试将项目发布成横屏
-
真机上预览的效果, 分别是 正常和 弹出键盘的效果
`这个效果我自己接受不了, 用户更不能接受了。
- 首先屏幕被横过来了
- 显示不全
- 影响用户体验,有横竖屏切换的过程`
###解决方案
下图是我为了解决这个问题想到的方法 条件 :横屏游戏 + 竖屏操作 优点 :不用旋转屏幕 + 更人性化(PS:个人认为) 缺点 :用户操作手势会切换
###步骤
-
这个弹窗我引用了第三方插件, 下载地址:PostbirdAlertBox
-
修改引擎源码, 找到engine目录下,搜索
CCEditBox.js -
修改如下两个方法:
_onTouchBegan: function(event) {
var post = PostbirdAlertBox
if (cc.view._isRotated && cc.sys.isMobile) {
var func = (data) = >{
if (!cc.isValid(this) || !cc.isValid(this.node)) {
return;
}
this.node.getComponent(cc.EditBox).string = data;
}
if (post) {
post.prompt({
‘value’: null,
‘title’: ‘请输入内容’,
‘okBtn’: ‘确认’,
onConfirm: (data) = >{ func(data) },
onCancel: () = >{}
})
}
event.stopPropagation();
return;
}
if (this._sgNode) {
this._sgNode._onTouchBegan(event.touch);
}
event.stopPropagation();
},
_onTouchEnded: function(event) {
if (cc.view._isRotated) {return;}
if (this._sgNode) {
this._sgNode._onTouchEnded();
}
event.stopPropagation();
},
这样就大工告成了!!
注:
- 修改引擎脚本后,需重新编译引擎哦。
- 插件相应的css文件也要引用哦。




