Я создаю элемент управления на основе перетаскивания во Flex / Flash, похожий на кинопленку, где человек может проводить пальцем по горизонтали для прокрутки элементов. Чтобы сделать управление более естественным, я добавил некоторую инерцию, чтобы замедлить прокрутку после того, как произойдет пролистывание. При первой загрузке будет отображаться пять элементов с номерами «х», которые необходимо прокрутить, а третий элемент будет отцентрирован и выбран.
Моя проблема, однако, заключается в том, что при анимации я хочу, чтобы жест смахивания определял, находится ли элемент в центре (3-я позиция), и соответствующим образом корректирует его расчет перемещения, чтобы он стыковался с 3-й / центральной позицией. Представьте, что вы выполняете длинный удар, он пропускает количество элементов «х», но когда он замедляется до остановки, он элегантно останавливается, когда предмет находится в центре / в 3-й позиции. Я считаю, что для этого мне нужно определить расстояние для перемещения только по значению скорости (поскольку время не имеет отношения к опыту пользователя, т. Е. Более длинное / более сильное перелистывание оправдывает более длительную анимацию, скользящую по элементам).
В данный момент я вызываю подпрограмму анимации (с инерцией) в событии ENTER_FRAME, когда пользователь генерирует событие MOUSE_UP. Когда они это делают, я получаю скорость перетаскивания (предварительно контролируя это) и затем уменьшаю это значение скорости при каждом вызове события ENTER_FRAME, пока оно не достигнет соответствующего значения, чтобы остановить анимацию.
К сожалению, все расчеты скорости, которые я видел, касаются скорости и времени, чтобы определить расстояние, мне просто нужна скорость. По общему признанию, мои знания не сильны в этой области, поэтому я могу упустить очевидное.
Приветствия заранее ...