在localhost:7456预览运行时,当Canvas大于浏览器而需要滑动时,button在初始这个位置,点击功能很正常(点红色圈位置):
但当滑动浏览器,button移到其他地方,需要点击位置好像沒有跟随移动,仍然是在红圈中(初始位置):
估计是要点击的位置没有跟浏览器滑动改变位置,为什么会这样?
(浏览器:Safari)
在localhost:7456预览运行时,当Canvas大于浏览器而需要滑动时,button在初始这个位置,点击功能很正常(点红色圈位置):
但当滑动浏览器,button移到其他地方,需要点击位置好像沒有跟随移动,仍然是在红圈中(初始位置):
估计是要点击的位置没有跟浏览器滑动改变位置,为什么会这样?
(浏览器:Safari)
我好像记得build的版本没见过这问题,只是localhost:7456预览运行时才有,
在预览时如果开发手机大小画面的横向游戏应该没大问题,但如果开发画面大的(高度比较高)的网页游戏便遇到问题了,当然现时可以每次用build当作预览来解决,但感觉很不方便,有没有引擎开发团队可看看什么问题?
有没有引擎开发团队可看看?想升級Creator但被這问题卡住了…
没有复现你这个情况,是不是页面出现报错了,提供个demo看看?
是指当画面太大要scroll时button触发点击的范围没有跟button移到显示的地方,只在localhost:7456预览运行时才遇到這问题。(用Mac的Safari)
那alert是用來表示button点击成功的,页面好像沒报错,只是当要scroll時点击的范围沒对上button的位置。
要不要上载一下project上来试试?
可试试建立大画面的Canvas,例如是960x3000,button放在(480,1500),然后试试在localhost:7456预览,试试scroll down来点那个button
开了个960x1000的canvas及一个会出alert的button,试试将浏览器的高度拉至比1000少(例如600),在localhost:7456预览运行,然后scroll画面点击button吧:NewProject.zip (838.9 KB)
有沒有重现问题?
解决方案:
这个问题在 QQ 浏览器和 UC 浏览器都会出现,这是 QQ 浏览器的反馈:QQ 浏览器触点偏移
需要修改引擎源码
1、CCInputManager.js 的 getPointByEvent 函数,即修改为:
getPointByEvent (event, pos) {
// qqbrowser、uc、safari browser can't calculate pageY correctly, need to refresh canvas bounding rect
if (cc.sys.browserType === cc.sys.BROWSER_TYPE_QQ
|| cc.sys.browserType === cc.sys.BROWSER_TYPE_UC
|| cc.sys.browserType === cc.sys.BROWSER_TYPE_SAFARI) {
this._updateCanvasBoundingRect();
}
...(此处省略无需改动的代码)
},
2、CCSys.js 866行的代码进行修改:
修改前:
var typeReg1 = /mqqbrowser|micromessenger|qq|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i;
var typeReg2 = /qqbrowser|ucbrowser|ubrowser|edge/i;
修改后:
var typeReg1 = /mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i;
var typeReg2 = /qq|ucbrowser|ubrowser|edge/i;
修改成功之后,编译引擎即可。不懂编译引擎的同学可以参考文档:定制引擎,之后重启编辑器即可。
我们会在 2.3.0 版本修复这个问题。