繁体   English   中英

多点触控/ Android时,Sencha Touch App冻结

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM