[英]Sencha Touch App freeze when multitouch / Android
我构建了一个sencha touch(2.1.0)应用程序,并在我的Samsung Galaxy S2(Android 4.0.3)上对其进行了测试。 一旦我使用snecha cmd的本机构建命令执行了此操作,另一个命令我用phonegap进行了包装。 两次我同时用两根手指触摸屏幕时都死机了。 我无法再按按钮或滚动。
有没有人解决这个问题?
我还在Sencha论坛( http://www.sencha.com/forum/showthread.php?249581-Multi-touch-and-phonegap )上阅读了该帖子,但这对我不起作用或我正在做某事错误。
任何帮助将是可观的。
我最近遇到了这个问题,并访问了您提到的Sencha论坛链接,并在我的代码中实现了该链接,从而实现了以下目的。
1.结合了此修复程序后,同时点击不会冻结。
2.在您同时提前敲击两个或多个点之后,您将不得不再点击一次屏幕上的某个位置。
注意:仅在android 4.0.x和Sencha 2.1上可以重现此问题。
非常感谢Sencha论坛的TROELS
在您的app.js中,将if条件放在Ext.application外部,如下所示
Ext.application({
name:xyz
requires:[abc]
//other stuffs
});
if(Ext.os.is.Android && Ext.os.version.equals(4.0)) {
Ext.define('app.overrides.TouchGesture', {
override: 'Ext.event.publisher.TouchGesture',
reset: function(e){
if(Ext.os.version.equals(4.0) && this.currentTouchesCount > 0){
e.changedTouches = Ext.Object.getValues(this.currentTouches);
this.onTouchEnd(e);
}
}
});
window.orgPinchEndMethod = Ext.event.recognizer.Pinch.prototype.end;
Ext.define('app.overrides.Pinch', {
override: 'Ext.event.recognizer.Pinch',
end: function(e){
var wasTracking = this.isTracking,
result = window.orgPinchEndMethod.apply(this, arguments);
if(wasTracking){
this._resetDetection(e);
}
return result;
},
_resetDetection: function(e){
var tg = Ext.event.Dispatcher.getInstance().getPublishers().touchGesture;
setTimeout(function(){
tg.reset(e);
}, 0);
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.