Squeak.ru - шаблоны программирования

Сделайте скроллер Flex / AIR с привязкой HGroup к каждому элементу после завершения прокрутки

Я разрабатываю приложение для устройств ANDROID с помощью Flash Builder Burrito, и мне сложно понять, как реализовать один из аспектов моего приложения.

У меня есть HGroup внутри скроллера. В HGroup есть изображения шириной 400 пикселей, и у меня ширина каждого столбца HGroup установлена ​​на 400 пикселей. Хотя количество элементов динамическое, предположим, что у меня есть 10 изображений в HGroup. Ширина ползунка и области просмотра установлена ​​на 400 пикселей.

Пока все хорошо - пользователь может видеть одно изображение внутри скроллера. Затем пользователь может прокручивать влево или вправо с помощью касания или мыши и просматривать каждое изображение. Но вот где я застрял. Я хочу сделать так, чтобы, когда пользователь ПРЕКРАЩАЕТ прокрутку скроллера, «привязывает» изображение к просмотру. Другими словами, мне не нужна половина одного изображения и половина другого изображения в области просмотра.

Кажется довольно простым, но я не могу этого понять. Отчасти проблема в том, что, похоже, нет события, которое можно было бы использовать для этой цели. Я знаю, что могу подключиться к PropertyChangeEvent.PROPERTY_CHANGE или MouseEvent.MOUSE_UP / TouchEvent.TOUCH_END (что я и делаю сейчас), но это событие на самом деле не дает мне того, что мне нужно.

Мне действительно нужно событие, которое срабатывает, когда пользователь отпускает мышь как часть прокрутки или убирает палец с устройства как часть прокрутки. Затем мне нужно дождаться остановки прокрутки. Например, если я делаю действительно быстрое смахивание, мне нужно дождаться остановки или почти остановки ползунка, прежде чем я выполню привязку. Событие запускается, как только я отпускаю мышь или убираю палец с планшета, поэтому, если я изменяю положение горизонтальной прокрутки, оно перезаписывается «замедлением прокрутки».

Кстати, я знаю, что могу использовать модульную логику, чтобы показать каждое изображение «целиком». Я застрял не в этом - я застрял в том, какое событие использовать, чтобы знать, КОГДА выполнять эту логику мода.

Обратите внимание, что то, что я уже разработал, отлично работает, если я медленно прокручиваю, а затем отпускаю мышь. Это перестает работать, только когда вы скользите быстрее.

Вот мой частично рабочий код:

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;
}

Заранее спасибо!


  • Мэтт, у меня точно такая же проблема: удалось ли вам решить ее с помощью приведенного ниже решения или иным способом? 14.05.2011
  • Я столкнулся с той же проблемой. Хотелось бы узнать, решили ли вы это! 02.08.2011
  • ссылка - ›Класс AS3 (расширенный скроллер) 14.09.2011

Ответы:


1

Multitouch.inputMode = MultitouchInputMode.GESTURE;

Затем прослушайте события gesturePan и / или gestureSwipe.

27.04.2011

2

Событие touchInteractionEnd отправляется после того, как пользователь отпустил палец и анимация прокрутки остановилась. Я столкнулся с этой проблемой, когда привязка моей страницы сломалась случайным образом, и мне нужно было вручную привязаться к какой-либо странице.

01.02.2012
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...