QA 刚刚提交了一个真正的错误,我正在摸索如何修复它。
如果同时按下两个按钮,例如返回和搜索,每个按钮都会调用Ext.dispatch
,从而导致两个同时相反的转换!这完全是 !@#$s 布局,使应用程序无法使用。
这确实是支持触控的应用程序的普遍问题……多根手指悬停在屏幕上,用户可以轻松触发奇怪且完全不兼容的动作组合,并且应用程序一次只需要接受一个。Sencha Touch 有什么方法可以优雅地处理这种情况吗?
QA 刚刚提交了一个真正的错误,我正在摸索如何修复它。
如果同时按下两个按钮,例如返回和搜索,每个按钮都会调用Ext.dispatch
,从而导致两个同时相反的转换!这完全是 !@#$s 布局,使应用程序无法使用。
这确实是支持触控的应用程序的普遍问题……多根手指悬停在屏幕上,用户可以轻松触发奇怪且完全不兼容的动作组合,并且应用程序一次只需要接受一个。Sencha Touch 有什么方法可以优雅地处理这种情况吗?
我通过监听事件来修复它,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
事件在转换完成之前触发。
希望这可以帮助某人。