![]() |
Прокрутка как на iPad
Здравствуйте.
Ситуация: Допустим, есть длинный нарисованный состав из 100 вагонов, на сцену (шириной 500) влезает только 5 вагонов, нужно организовать прокрутку "как в айПаде", т.е. зацепил один вагон мышкой, повел в сторону и спроисходит смещение - становятся видны следующие/предыдущие вагоны. Кроме того, по-моему (ни айПада, ни айФона у меня нет) там есть что-то вроде инерции - чем быстрее вел, тем дольше продолжается движение после того, как отпустил объект. Вопрос: Есть ли у кого-нить наметки, как это делается, или примеры, или ссылки на похожие статьи? Во флеше не так давно, так что подойдут материалы "для чайников" ) |
Могу предложить направление изысканий. Вам потребуется прослушка событий MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_UP и MouseEvent.MOUSE_MOVE. В слушателе MOUSE_MOVE вам нужно будет считывать координаты мыши и, исходя из них, считать скорость прокрутки. Зная скорость прокрутки, вы сможете реализовать инерцию. Кроме того можете добавить эффект смазывания, воспользовавшись flash.filters.BlurFilter.
|
Еще пригодится библиотека для плавной анимации перемещения: http://www.greensock.com/
|
чтобы узнать скорость прокрутки, к примеру, можно сравнивать предыдущее и последующее положение (смещение) мыши в определенные отсчеты времени.
|
Спасибо )
Сделал так: Код AS3:
как добавить инерцию после отпускания? |
Цитата:
|
Не обижайтесь, но работу подобного кода можно охарактеризовать только нехорошим словом. Сам так делал как-то =) Не вздумайте такие скроллы лепить на тач-устройства. Нужно учитывать случайный сдвиг при касании (не относится к мышке), нужно сглаживать-аппроксимировать скорость броска, надо делать грамотный(по ощущениям) pull и bounce, и всякие другие мелкие нюансы...
|
Цитата:
|
Можно посмотреть исходники нового флексового Scroller, там учитывается довольно много. Архитектура дебильная, чего-то не хватает, но посмотреть стоит. Я своё готовое решение пока не готов шарить.
|
Цитата:
Добавлено через 15 часов 27 минут Пока сделал так. Работает. Не айПад, конечно, но работает. Код AS3:
|
| Часовой пояс GMT +4, время: 17:42. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.