Flash 制作一个带有HGroup“的Flex/AIR滚动条;snap";当滚动完成时,添加到每个项目

Flash 制作一个带有HGroup“的Flex/AIR滚动条;snap";当滚动完成时,添加到每个项目,flash,apache-flex,mobile,scroll,builder,Flash,Apache Flex,Mobile,Scroll,Builder,我正在使用Flash Builder Burrito为ANDROID设备开发一个应用程序,我很难弄清楚如何完成我应用程序的一个方面 我有一个卷轴里面的HGroup。HGroup的图像宽度为400px,我将每个HGroup列的宽度设置为400px。虽然项目的数量是动态的,但假设我在HGroup中有10个图像。滚动条和视口的宽度设置为400px 到目前为止还不错——用户可以在滚动条中看到单个图像。然后,用户可以使用触摸或鼠标向左或向右滚动并查看每个图像。但我被困在这里了。我想这样做,当用户停止滚动滚

我正在使用Flash Builder Burrito为ANDROID设备开发一个应用程序,我很难弄清楚如何完成我应用程序的一个方面

我有一个卷轴里面的HGroup。HGroup的图像宽度为400px,我将每个HGroup列的宽度设置为400px。虽然项目的数量是动态的,但假设我在HGroup中有10个图像。滚动条和视口的宽度设置为400px

到目前为止还不错——用户可以在滚动条中看到单个图像。然后,用户可以使用触摸或鼠标向左或向右滚动并查看每个图像。但我被困在这里了。我想这样做,当用户停止滚动滚动,然后“快照”到视图中的图像。换句话说,我不希望视口中有一半图像和另一半图像

看起来很简单,但我不明白。部分问题在于,似乎没有用于此目的的事件。我知道我可以连接到PropertyChangeEvent.PROPERTY\u CHANGE或MouseEvent.MOUSE\u UP/TouchEvent.TOUCH\u END(这就是我现在正在做的),但该事件并不能真正满足我的需要

我真的需要一个事件,当用户释放鼠标作为滚动的一部分或将手指从设备上提起作为滚动的一部分时触发然后我需要等待滚动停止。例如,如果我快速滑动,我需要等待滚动条停止或几乎停止,然后再执行快照。当我松开鼠标或将手指从平板电脑上取下时,事件就会触发,因此如果我更改水平滚动位置,则它会被“滚动器减速”覆盖

顺便说一下,我知道我可以使用模逻辑来显示每个图像的“整体”。这不是我被卡住的地方——我被困在哪个事件上,以知道何时执行这个mod逻辑

请注意,如果我慢慢滚动,然后松开鼠标,我已经开发的功能就可以正常工作。只有当你滑得更快时,它才会停止工作

以下是我的部分工作代码:

private function onVehicleScrollerMouseUp(event:Event):void
{
    snapScroller();
}

private function onVehicleScrollerTouchEnd(event:Event):void
{
    snapScroller();
}

private function snapScroller():void
{
    // If the user didn't stop at an interval of 400, snap to that interval now
    var newScrollPosition:uint = vehicleScroller.viewport.horizontalScrollPosition as uint; 
    var modScrollPosition:uint = newScrollPosition % 400;
    var snapScrollPosition:uint;
    if (modScrollPosition == 0)
        snapScrollPosition = newScrollPosition;
    else
    {
        if (modScrollPosition <= 200)
            snapScrollPosition = newScrollPosition - modScrollPosition;
        else
            snapScrollPosition = newScrollPosition - modScrollPosition + 400; 
    }
    vehicleScroller.viewport.horizontalScrollPosition = snapScrollPosition as Number;
}
车辆上的专用功能CrollerMouseUp(事件:事件):无效 { snapScroller(); } 车辆上的专用功能CrollerTouchend(事件:事件):无效 { snapScroller(); } 私有函数snapScroller():void { //如果用户没有以400的间隔停止,请立即捕捉到该间隔 var newScrollPosition:uint=车辆croller.viewport.horizontalScrollPosition作为uint; var modScrollPosition:uint=newScrollPosition%400; 变量位置:uint; 如果(modScrollPosition==0) snapScrollPosition=newScrollPosition; 其他的 {
如果(modScrollPositionMultitouch.inputMode=MultitouchInputMode.手势


然后收听gesturePan和/或gestureSwipe事件。

在用户释放手指且滚动动画停止后,touchInteractionEnd事件将发送。当我的页面抓拍随机中断并需要手动抓拍到某个页面时,我遇到了此问题。

Matt,我遇到了完全相同的问题:你成功解决了吗是否使用以下解决方案解决?我遇到了相同的问题。希望知道您是否解决了它!链接->