Sencha Touch:防止多个并发转换

时间:2012-09-20 22:36:41

标签: sencha-touch

质量检查刚刚提交了一个真正的臭虫,我正在摸索如何修复它。

如果有两个按钮,例如返回,并同时按下搜索,每个都会调用Ext.dispatch,导致两个同时相反的过渡!这完全是!@#$布局,使应用程序无法使用。

对于启用触控功能的应用来说,这确实是一个普遍问题...多个手指悬停在屏幕上,用户可以轻松触发奇怪且完全不兼容的动作组合,并且应用只需要一次只接受一个。有没有办法在Sencha Touch中优雅地处理这种情况?

1 个答案:

答案 0 :(得分:0)

我通过收听before-dispatch事件来修复它,如果正在进行调度,则取消它。

Ext.regApplication(...
    this._isDispatching = false,

    launch: function() {
        Ext.Dispatcher.on('before-dispatch', function () {
            var me;
            if (this._isDispatching)
                return false;
            else {
                this._isDispatching = true;
                me = this;
                setTimeout(function () {
                    me._isDispatching = false;
                }, 500);
                return true;
            }
        }, this);
    }

是的,500毫秒的延迟肯定是hacky,但我无法想到一种更强大的方法来检测转换何时完成。没有after-dispatch事件,dispatch事件在转换完成之前触发。

希望这有助于某人。