![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Как можно сделать регулятор громкости(или чевото еще), который можно крутить, вращая зажатой мышкой по кругу(вроде как в некоторых скинах для пятого Винампа)?
Подскажите... ![]() |
|
|||||
|
Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
|
Вешаешь на регулятор onPress, с момента события отслеживаешь перемещение курсора по вертикали, соответстенно поворачиваешь регулятор, при событии onRelease прекращаешь слежение.
__________________
Всё гениальное просто. |
|
|||||
|
Цитата:
Последний раз редактировалось E.Q.; 22.02.2006 в 21:30. Причина: Проиллюстрировал |
|
|||||
|
Регистрация: Nov 2004
Адрес: Санкт-Петербург
Сообщений: 751
|
Расчитывай угол, и строй касательную. Я не особо силён в математике, но вроде так
__________________
Всё гениальное просто. |
|
|||||
|
Простая геометрия !!!!
у тебя есть треугольник прямоугольный, и 2 катета (положение мыши относительно твоего центра регулятора по осям х и у) ну а там курс геометрии класс 6-7 %)) типа " тангенс прилежащего угла равен прилежащему катету деленному на противолежащий" (хотя может и наоборот противо лежащий на прилежащий) %)) из этого находишь угол на который нужно повернуть регулятор и поворачиваешь его! Последний раз редактировалось __i; 22.02.2006 в 21:39. |
|
|||||
|
Цитата:
![]() |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
надеюсь, вопрос не из серии "сделайте всё за меня".
есть чудо-функция Math.atan2(y, x), которая возвращает арктангенс угла наклона вектора, определенного указанными координатами (y, x), относительно положительного направления оси абсцисс. более того, эта функция возвращает значения от -П радиан до +П радиан, тогда как обычный арктангенс Math.atan возвращает значения от -П/2 до +П/2, как и положено одноименной математической фунции. короче. при помощи Math.atan2 ты можешь определить, под каким углом сейчас находится указатель мыши относительно какой-то точки. допустим, у тебя есть клип с регулятором clip_mc, и его "нулевое" положение - горизонтально направо. тогда угол, на который нужно повернуть регулятор, чтобы он "смотрел" на указатель мыши равен: Math.atan2(clip_mc._parent._ymouse-clip_mc._y, clip_mc._parent._xmouse-clip_mc._x); |
|
|||||
|
Наконецто я сделал, его.
Только были проблемы с том, как сделать так, чтобы значение громкости начиналось с левого нижнего положения. Не найдя ничего более простого решил использовать простую арифметику: Теми же if'ами отключил поворот за пределы шкалы: Спасибо всем кто помог. ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|