Android 在Flex移动应用程序中区分滚动和滑动

Android 在Flex移动应用程序中区分滚动和滑动,android,actionscript-3,apache-flex,flashdevelop,gestures,Android,Actionscript 3,Apache Flex,Flashdevelop,Gestures,在Flex Mobile中,是否可以区分水平滑动手势和水平滚动。 我有一个列表(水平布局),没有附加任何监听器,还有一个视图,附加了一个GestureSwipe监听器,当我尝试滚动列表时,显然会触发滑动手势。 我曾尝试向列表中添加一个手势事件侦听器,并使用event.stopPropagation()调用一个函数,该函数确实可以阻止在视图中触发手势,但由于列表占据了85%的屏幕空间,因此很难触发视图事件,这会破坏我想要做的事情 有没有办法区分这两个动作:速度、持续时间或其他 使用FlashDev

在Flex Mobile中,是否可以区分水平滑动手势和水平滚动。 我有一个列表(水平布局),没有附加任何监听器,还有一个视图,附加了一个GestureSwipe监听器,当我尝试滚动列表时,显然会触发滑动手势。 我曾尝试向列表中添加一个手势事件侦听器,并使用event.stopPropagation()调用一个函数,该函数确实可以阻止在视图中触发手势,但由于列表占据了85%的屏幕空间,因此很难触发视图事件,这会破坏我想要做的事情

有没有办法区分这两个动作:速度、持续时间或其他

使用FlashDevelop和FlexSDK v4.14.1、AIR17.0构建Android


谢谢

好的,所以我不知道如何区分这两个事件,但是似乎有一个解决办法,不是一个好办法,但我认为它可以工作,但是我发现在列表滚动到最远点后添加事件侦听器有问题,您需要另一个滚动/滑动操作来进行视图转换,这对用户来说不是一个好的体验

list.scroller.viewport.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,propertyChangeHandler );

protected function propertyChangeHandler(event:PropertyChangeEvent):void
{
    if (event.property == "horizontalScrollPosition" )
    {
        if (event.newValue == (event.currentTarget.measuredWidth - event.currentTarget.width )) {
                navigator.pushView(view.RightView);
        }
        if(event.newValue == 0){
                navigator.pushView(view.LeftView);
        }
    }
}

有人对这种方法有什么想法吗?

我从未开发过Flex Mobile,但如果您可以覆盖
interceptOnTouchEvent
以获取事件,您可以区分水平滑动手势和水平滚动

这是我认为我在Flex中做不到的,而且我似乎找不到其他人提出同样的问题。老实说,我甚至想不出水平滚动和手势滑动之间的区别,在这两种情况下,你都可以触摸右侧的屏幕并向左滑动(例如本例)。我很想知道,如果不把你的手指从屏幕上拿下来,可能就意味着这是一个卷轴,但唉,我似乎弄错了。我会看看是否能根据您的建议找到一种方法,并让您知道,谢谢。@Shaine Fisher您能使用触控点位置来确定将触发哪个手势吗?如果我设置MultitouchInputMode.touch_point,则AIR会发送鼠标和触控事件,但不会发送手势事件。这将杀死所有出现在每个视图中的手势滑动事件。当我使用multi-touchinputmode.signature时,我没有得到关于接触点的详细信息,我只得到调度组件和方向。问题的根本在于Flex Mobile列表没有滚动事件可听,因此我无法捕捉列表级别的滚动事件,它们都被确定为刷卡,并通过gestureSwipeHandler函数在视图级别捕获。Argghh(是的,我不太懂技术,但很擅长缓解压力)我有一个想法,我可以在上面的条件中手动分派TransformGestureEvent.GestureSwipe,但我无法在尝试时设置OffsetX或OffsetY。