gpt4 book ai didi

flash - 滚动完成时为每个项目制作一个带有 HGroup "snap"的 Flex/AIR 滚动条

转载 作者:行者123 更新时间:2023-12-01 06:46:12 24 4
gpt4 key购买 nike

我正在使用 Flash Builder Burrito 为 ANDROID 设备开发一个应用程序,但在弄清楚如何完成我的应用程序的一个方面时遇到了麻烦。

我在 Scroller 中有一个 HGroup。 HGroup 的图像宽度为 400 像素,我将每个 HGroup 列的宽度设置为 400 像素。尽管项目的数量是动态的,但假设我在 HGroup 中有 10 个图像。 Scroller 和 Viewport 的宽度设置为 400px。

到目前为止一切顺利——用户可以在滚动条中看到单个图像。然后,用户可以使用触摸或鼠标向左或向右滚动并查看每个图像。但这就是我卡住的地方。我想这样做,以便当用户停止滚动滚动条时,然后将图像“捕捉”到 View 中。换句话说,我不希望在视口(viewport)中有一张图像的一半和另一张图像的一半。

看起来很简单,但我无法弄清楚。部分问题是似乎没有可用于此目的的事件。我知道我可以连接到 PropertyChangeEvent.PROPERTY_CHANGE 或 MouseEvent.MOUSE_UP/TouchEvent.TOUCH_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;
}

提前致谢!

最佳答案

Multitouch.inputMode = MultitouchInputMode.GESTURE;

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

关于flash - 滚动完成时为每个项目制作一个带有 HGroup "snap"的 Flex/AIR 滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com