Вы можете легко создать свой собственный слайдер и научиться чему-то в процессе :) .
В ползунке - перемещение ручки, должно соответствовать перемещению галереи, где размер галереи переводится в размер ползунка. Это в основном все. Итак, вам понадобятся некоторые математические формулы и основные элементы:
Gallery.width/slider.width — чтобы определить, шире ли галерея, чем ползунок (чтобы вы хотели продолжить скольжение), вы также можете использовать эту пропорцию для определения размера ручки. Таким образом, если галерея будет меньше слайдера, то вы не сможете рендерить слайдер или сделать ручку размером с слайдер, чтобы он не двигался. Или сделайте размер ручки пропорциональным размеру переполнения галереи - просто поэкспериментируйте со всем, что я здесь пишу.
Вам также нужно будет использовать эти элементы:
- галерея (отображаемый объект),
- маска/контейнер для галереи (видимая часть галереи),
- слайдер,
- ручка.
- Прямоугольный объект
Галерея будет просто объектом отображения, который содержит все изображения в качестве дочерних элементов.
Маска/контейнер будет отображаемым объектом, который обеспечит границы области, где будет видна часть галереи.
Слайдер - любой спрайт
Ручка - любой спрайт
Rectangle - это, конечно, объект Rectangle, с шириной slider.width - ширина ручки и высота 0, поэтому это позволит перетаскивать ручку вдоль ползунка, не выходя за его пределы, с помощью функции:
knob.startDrag(false, rect); // Use it at MouseEvent.MOUSE_DOWN of knob
knob.stopDrag() // Use it at MouseEvent.MOUSE_OUT of knob
Вы можете создать прямоугольник с помощью этого кода:
new Rectangle(0, knob.x, slider.width - knob.width, 0);
И вам нужно будет перевести перемещение ручки в перемещение галереи, что будет примерно так:
// When moving knob you can use this formula:
gallery.x = knob.y / (slider.width - knob.width) * (gallery.width - mask.width); // Use it at MouseEvent.MOUSE_MOVE of knob
Я думаю, что так и должно быть, я написал это из головы на основе какой-то библиотеки, которую я написал некоторое время назад, поэтому, пожалуйста, сообщите мне, если вы столкнетесь с какими-либо проблемами, но я думаю, что это все основы, которые вам нужны.
person
Łukasz Zaroda
schedule
10.03.2013